[LLVMdev] YABCFC

Reid Spencer rspencer at reidspencer.com
Thu Feb 1 18:35:27 PST 2007


Yet Another Byte Code Format Change:

Yup, just when you got over the last bytecode change, its changed again.

In order to support shifts of more than 255 bits for large integer
types, it was necessary to make the ShiftInst become a BinaryOperator.
This means the three shift instruction's opcodes had to be moved into
the BinaryOps range and consequently all the opcodes after that got
bumped up by three. This changes the bytecode format, unfortunately.

The documentation (LangRef.html, BytecodeFormat.html) has been updated
to reflect the changes.

llvm-upgrade has been updated to perform the upgrade. Note, however,
that it will insert a zext instruction (or constant expression) if the
shifted value is not i8. In updating the test suite, this upgrade broke
a few tests because the additional zext caused different code to be
generated. Such test cases were manually updated to reflect the original
intent of the test case.  If you plane to upgrade your assembly to the
new format, please be aware of these additional zext instructions.

Hopefully, this will be the end of the instruction changes (and bytecode
format) for a while.

Reid.





More information about the llvm-dev mailing list