-
Notifications
You must be signed in to change notification settings - Fork 0
M9: GlobalISel and TableGen #18
Copy link
Copy link
Open
Labels
area/codegenSelectionDAG, GlobalISel, regalloc, MC, the back endSelectionDAG, GlobalISel, regalloc, MC, the back endarea/tablegenTableGen records, backends and generated filesTableGen records, backends and generated fileskind/milestoneTracking issue for a whole milestoneTracking issue for a whole milestonepriority/p1Needed this milestoneNeeded this milestone
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
area/codegenSelectionDAG, GlobalISel, regalloc, MC, the back endSelectionDAG, GlobalISel, regalloc, MC, the back endarea/tablegenTableGen records, backends and generated filesTableGen records, backends and generated fileskind/milestoneTracking issue for a whole milestoneTracking issue for a whole milestonepriority/p1Needed this milestoneNeeded this milestone
Seven weeks. Parts VIII and IX, GlobalISel and TableGen. Fourteen lessons, and the generator that makes the backend capstone maintainable.
Exit criterion.
gen_tdgenerates the target fact sections of theBP-CG-*andBP-TD-*blueprints fromllvm-tblgen -dump-json, for three targets, with no hand editing.Tasks
BP-CG-GISEL,BP-TD-LANG,BP-TD-BACKENDS,BP-TD-TARGETirx.tdand theRecordBrowserwidgetgen_tdGates
gen_tdproduces target fact sections for three targets with no hand editingBP-TD-TARGETis complete enough that M10 can startTableGen comes late and is taught backwards. You write a backend in twenty lines of Python over the JSON dump before you ever read a C++ one, because by Part IX you have used six things TableGen generated and "what produced this table" is a question you already have rather than one somebody has to give you.
GlobalISel status claims get a date and a command because this is the area of LLVM where documentation goes stale fastest. What is default for which target at which optimisation level changes between releases and the docs have been burned by it repeatedly.