The change implements support of the intrinsics get_fpmode,
set_fpmode and reset_fpmode in Global Instruction Selector. Now they
are lowered into library function calls.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/include/llvm/Target/GenericOpcodes.td | ||
|---|---|---|
| 1010 | "use this way" doesn't read right | |
| llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
| 835 | TLI is already available as a member of LegalizerHelper | |
| 843 | StateTy.getStoreSize | |
| 861 | Need to erase the original instruction | |
| 875 | TLI already a member | |
| 895 | Didn't erase original instruction? | |
| 915–916 | This is a roundabout way of doing DL.getPointerSizeInBits() | |
| 919–920 | can fold these together with auto Dest = buildIntToPtr(MemTy) | |
| 923 | Didn't erase original instruction? | |
| 972–973 | Unrelated? | |
| llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp | ||
| 123 | Were there really no other typeless G_* instructions before? | |
| llvm/include/llvm/Target/GenericOpcodes.td | ||
|---|---|---|
| 1009 | side effects and access. | |
| llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
|---|---|---|
| 861 | This function is called from LegalizerHelper::libcall, which erases the original instruction. | |
| 895 | LegalizerHelper::libcall will remove it. | |
| 923 | LegalizerHelper::libcall will remove it. | |
| 972–973 | As LLTy is not calculated at the beginning of the function anymore, it should be introduced when needed. | |
| llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp | ||
| 123 | G_RESET_FPMODE does not have nor input operands, nor output value, this is the first such instruction. | |
| llvm/test/CodeGen/AArch64/GlobalISel/legalize-fpmode.mir | ||
|---|---|---|
| 5 | Probably don't need the IR section | |
side effects and access.