[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 11 11:42:03 PST 2019
craig.topper updated this revision to Diff 181338.
craig.topper added a comment.
Attempt to fix a bug reported by @nickdesaulniers . We weren't using the label created for the blockaddress of the basic block when we printed the inline assembly block. So there was no guarantee the label we were using wouldn't be removed. To fix this I've kept the blockaddress object in the SelectionDAG instead of stripping it in the builder. I've created it directly as TargetBlockAddress to hide it from isel. Then in the printer I look for the operand being a blockaddress and grab the symbol for it. I had to make a few checks for TargetBlockAddress in other places to make this work. I admit I have no idea if this is the right thing to do at all, and open to any input on this.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D53765/new/
https://reviews.llvm.org/D53765
Files:
include/llvm-c/Core.h
include/llvm/Analysis/SparsePropagation.h
include/llvm/Bitcode/LLVMBitCodes.h
include/llvm/CodeGen/GlobalISel/IRTranslator.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/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/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/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.181338.patch
Type: text/x-patch
Size: 100615 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190111/48b5940c/attachment.bin>
More information about the llvm-commits
mailing list