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
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. |
clang-format: please reformat the code