added optimization passes to the driver
added character ABI compatible with other compilers