I can suggest to write directly in GPIO control registers. You need to set the GPIOx->CR1 CR2 DDR ...
The best way is to analyze the function and check the setted bits and write directly in the GPIO control registers.
The driver functions are generic and test the different cases.
In you case you know your pin configuration --> do it, without the different cases.
I test it with a code someting like that quickly the results seems interesting:

Is the problem identified with the GPIO response times.?
I used the functions GPIO_Init with GPIO_MODE_OUT_PP_LOW_FAST for o/p & GPIO_MODE_IN_FL_IT for i/p
which is supposed to 10Mhz, and the GPIO_WriteHigh & GPIO_WriteLow as well as
GPIO_ReadInputPin.
Each of these functions are directly writing to the registers GPIOX->ODR.
But the response time is painfully slow.
I have configured my clock as 16Mhz & using HSI oscillator.
In a while loop when i light an led depending on the state of a GPIO pin configured as i/p, there seems to be a distinct lag of around 1-2secs, which is surprising
It's the same even when i light the led in an interrupt service routine
Do you any idea as to why this could be happening
I am using STM8S-Discovery board & SDCC compiler & STVP flash tool