Thats pretty bad, in the C handbook it states that XC 8 dosnt use any of the extended code set, I wonder if thats just the free (lite) version. Bit of a dirty trick though, dosnt bode well for Atmel does it.Yes, the free version of the C compilers aren't just 'poorly optimised', they also deliberately insert lot's of extra spurious code to make them look bad.
I tried my IR tutorial, which Ian had converted to C - and it didn't work at all. I looked into why, and the loops take too long to read the IR pulses.
Have a read of: