[PATCH] D53765: [RFC prototype] Implementation of asm-goto support in LLVM

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 25 14:45:19 PST 2019


craig.topper updated this revision to Diff 183623.
craig.topper added a comment.

-Add a new isAsmGotoTarget flag to MachineBasicBlock. Use it to preserve predecessors/successors in a few places similar to isEHPad. Probably more work to do here, but I think it at least fixes  https://github.com/ClangBuiltLinux/linux/issues/319
-Remove SelectionDAGBuilder support for doing anything with CallBr other than inline assembly. The code can't be tested today so there's really no point in having it. Assuming inline assembly only made setting the flag above a little simpler.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D53765/new/

https://reviews.llvm.org/D53765

Files:
  docs/LangRef.rst
  include/llvm-c/Core.h
  include/llvm/Analysis/SparsePropagation.h
  include/llvm/Bitcode/LLVMBitCodes.h
  include/llvm/CodeGen/GlobalISel/IRTranslator.h
  include/llvm/CodeGen/MachineBasicBlock.h
  include/llvm/IR/CallSite.h
  include/llvm/IR/IRBuilder.h
  include/llvm/IR/InstVisitor.h
  include/llvm/IR/InstrTypes.h
  include/llvm/IR/Instruction.def
  include/llvm/IR/Instructions.h
  lib/Analysis/ValueTracking.cpp
  lib/AsmParser/LLLexer.cpp
  lib/AsmParser/LLParser.cpp
  lib/AsmParser/LLParser.h
  lib/AsmParser/LLToken.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
  lib/CodeGen/BranchFolding.cpp
  lib/CodeGen/CodeGenPrepare.cpp
  lib/CodeGen/GlobalISel/IRTranslator.cpp
  lib/CodeGen/IndirectBrExpandPass.cpp
  lib/CodeGen/MachineBasicBlock.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  lib/CodeGen/SelectionDAG/TargetLowering.cpp
  lib/CodeGen/TargetLoweringBase.cpp
  lib/IR/AsmWriter.cpp
  lib/IR/Instruction.cpp
  lib/IR/Instructions.cpp
  lib/IR/Value.cpp
  lib/IR/Verifier.cpp
  lib/Target/X86/X86AsmPrinter.cpp
  lib/Target/X86/X86InstrInfo.cpp
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  lib/Transforms/InstCombine/InstCombineInternal.h
  lib/Transforms/InstCombine/InstructionCombining.cpp
  lib/Transforms/Scalar/JumpThreading.cpp
  lib/Transforms/Scalar/SCCP.cpp
  lib/Transforms/Utils/BasicBlockUtils.cpp
  lib/Transforms/Utils/InlineFunction.cpp
  lib/Transforms/Utils/Local.cpp
  lib/Transforms/Utils/LoopSimplify.cpp
  lib/Transforms/Utils/LoopUtils.cpp
  lib/Transforms/Utils/SimplifyCFG.cpp
  test/Bitcode/callbr.ll
  test/Bitcode/callbr.ll.bc
  test/CodeGen/X86/callbr-asm-destinations.ll
  test/CodeGen/X86/callbr-asm-errors.ll
  test/CodeGen/X86/callbr-asm-outputs.ll
  test/CodeGen/X86/callbr-asm.ll
  test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll
  test/Transforms/MergeFunc/inline-asm.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53765.183623.patch
Type: text/x-patch
Size: 108069 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190125/1848662c/attachment-0001.bin>


More information about the llvm-commits mailing list