There's more smarts in AArch64ISelLowering that we don't have yet, but this change incrementally improves some of the more common patterns. I think future iterations will want to use some combination of PostLegalizerCombiner and the selector to catch the other cases.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/test/CodeGen/AArch64/combine-loads.ll | ||
|---|---|---|
| 7 | I'm not entirely sure what this test was meant to demonstrate except poor codegen on -O0 (surprise surprise). | |
| llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp | ||
|---|---|---|
| 4503–4509 | Can getConstantVRegValWithLookThrough handle this? It has a HandleFConstants parameter. | |
| llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp | ||
|---|---|---|
| 4503–4509 | getConstantVRegWithLookThrough tries to return an int64_t, but here I need to find the actual ConstantInt/ConstantFP IR values in order to generate the constant pool entries. | |
Can getConstantVRegValWithLookThrough handle this?
It has a HandleFConstants parameter.