Open
Description
We should enable a constrained O0
pipeline to generate object file ASAP. Although how to build codegen pipeline is still controversial (#89708), we still can port the rest machine function passes to generate object file.
Test is another problem, a large part of codegen tests use --start/stop-before/after`, this brings some difficulty to the test.
BPF might be the simplest target in non-experimental targets, this might be a good place to start, but tests in BPF check only asm code, this is bad for testing.
CC @aeubanks
TODO list:
- BPF
CodeGenPassBuilder
support: [NewPM][BPF] AddBPFCodeGenPassBuilder
#94158 - BPF DAG->DAG Pattern Instruction Selection
bpf-isel
- Finalize ISel and expand pseudo-instructions
finalize-isel
[NewPM][CodeGen] Portfinalize-isel
to new pass manager #94214 - Local Stack Slot Allocation
local-stack-alloc
[NewPM][CodeGen] Portlocalstackalloc
to new pass manager #94303 - Register allocation
- Eliminate PHI nodes for register allocation
phi-node-elimination
-
MachineDominatorTreeAnalysis
[CodeGen][NewPM] Port machine dominator tree analysis to new pass manager #95879, [CodeGen] RemoveapplySplitCriticalEdges
inMachineDominatorTree
#97055 -
MachinePostDominatorTreeAnalysis
[CodeGen][NewPM] Port machine post dominator tree analysis to new pass manager #96378 -
MachineLoopAnalysis
[CodeGen][NewPM] Portmachine-loops
to new pass manager #97793 -
LiveVariables
[CodeGen][NewPM] PortLiveVariables
to new pass manager #97880 -
SlotIndexes
[CodeGen][NewPM] PortSlotIndexes
to new pass manager #97941 -
LiveIntervals
[CodeGen][NewPM] PortLiveIntervals
to new pass manager #98118
-
- Two-Address instruction pass
two-address-instruction
[CodeGen] Porttwo-address-instructions
to new pass manager #98632 - Fast Register Allocator
regallocfast
[NewPM][CodeGen] Portregallocfast
to new pass manager #94426
- Eliminate PHI nodes for register allocation
- Post-RA pseudo instruction expansion pass
post-ra-pseudos
- BPF PreEmit Checking
bpf-mi-checking
- Assembly Printer
asm-printer
-
MachineOptimizationRemarkEmitterPass
-
GCModuleInfo
done, but it need reverse iterator to iterate over strategies -
MachineBlockFrequencyInfoPass
[CodeGen][NewPM] Portmachine-block-freq
to new pass manager #98317 -
MachineBranchProbabilityAnalysis
Reapply "[CodeGen][NewPM] Port machine-branch-prob to new pass manager" (#96858) #96869
-