 GENERIC is more complex, based on the GCC 3.x Java front end's intermediate representation.GIMPLE is a simplified GENERIC, in which various constructs are "lowered" to multiple GIMPLE instructions.The C, C++, and Java front ends produce GENERIC directly in the front end.