This patch changes the behavior of IRTranslating intrinsics where we now create VREG + G_CONSTANT for ConstantInt values. We already do this for FloatingPoint values.
The reasoning behind this is, when we have several instrinsic calls all having the same i32 constant, and when the backend is selecting the instructions, for certain instructions will not be able to use the immediate directly and will instead need to create a G_CONSTANT and use that VREG. If we have multiple calls that use the same constants, then the backend will have to de-duplicate the creation of G_CONSTANTS + selections. It'll be a lot easier for this to be done in the IRTranslator.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM