Because this pass is to be a codegen pass, it must use the legacy pass
manager.
Link: https://discourse.llvm.org/t/rfc-syncing-asm-goto-with-outputs-with-gcc/65453/8
Paths
| Differential D139861
[llvm] boilerplate for new callbrprepare codegen IR pass ClosedPublic Authored by nickdesaulniers on Dec 12 2022, 10:32 AM.
Details Summary Because this pass is to be a codegen pass, it must use the legacy pass Link: https://discourse.llvm.org/t/rfc-syncing-asm-goto-with-outputs-with-gcc/65453/8
Diff Detail
Event Timeline
Comment Actions I wouldn't add the pass to the pipeline just yet if it's not even doing anything, but the pass boilerplate looks fine nickdesaulniers added a child revision: D139872: [llvm][CallBrPrepare] split critical edges.Dec 12 2022, 12:01 PM Comment Actions lg, assuming we're actually going this direction
This revision is now accepted and ready to land.Dec 12 2022, 2:33 PM nickdesaulniers mentioned this in D135997: [Dominators] check indirect branches of callbr.Dec 21 2022, 2:27 PM nickdesaulniers mentioned this in D139883: [llvm][CallBrPrepare] add llvm.callbr.landingpad intrinsic. Comment Actions Why add a stub for the pass? I think people normally just wait until they have a full implementation ready. Comment Actions
Commit early commit often. I figured it might be easier to review more bite-sized chunks. This commit is the stub. The next 4 patches incrementally build off it. The 5th patch then wires in the pass to actually run as part of the default pipelines.
nickdesaulniers marked 2 inline comments as done. Comment Actions
This revision is now accepted and ready to land.Jan 19 2023, 10:14 AM
This revision is now accepted and ready to land.Jan 24 2023, 11:25 AM
nickdesaulniers marked an inline comment as done. Comment Actions
Closed by commit rGfb471158aa0d: [llvm] boilerplate for new callbrprepare codegen IR pass (authored by nickdesaulniers). · Explain WhyFeb 16 2023, 6:04 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 493424 llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
llvm/include/llvm/CodeGen/MachinePassRegistry.def
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/InitializePasses.h
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/CallBrPrepare.cpp
llvm/lib/CodeGen/CodeGen.cpp
llvm/lib/CodeGen/TargetPassConfig.cpp
llvm/test/CodeGen/AArch64/callbr-prepare.ll
llvm/tools/opt/opt.cpp
llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
|
oh this is the att