[PATCH] D53765: [RFC prototype] Implementation of asm-goto support in LLVM
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 6 20:48:07 PST 2019
craig.topper updated this revision to Diff 185703.
craig.topper added a comment.
Herald added subscribers: jsji, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, atanasyan, edward-jones, zzheng, niosHD, sabuasal, apazos, simoncook, johnrusso, rbar, asb, javed.absar, fedor.sergeev, kbarton, nhaehnle, jvesely, nemanjai, sdardis, dylanmckay, jyknight, arsenm, MatzeB.
-Remove GlobalISel implementation completely. It wasn't even trying to be correct for asm-goto. It assumed a call to a function not InlineAsm. I think we can deal with this later.
-Introduce an INLINEASM_BR instruction in machine IR that is like INLINEASM but is also a terminator. Hopefully I got the right flags set on this.
-Remove isAsmGotoTarget/hasAsmGotoTargetSuccessor from MachineBasicBlock
>From visual inspection of the existing tests this seems to be working, but we'll see what the kernel builds have to say
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/ISDOpcodes.h
include/llvm/CodeGen/MachineInstr.h
include/llvm/CodeGen/SelectionDAGISel.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/Instruction.h
include/llvm/IR/Instructions.h
include/llvm/Support/TargetOpcodes.def
include/llvm/Target/Target.td
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/Bitcode/Writer/ValueEnumerator.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/SelectionDAG/InstrEmitter.cpp
lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
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/AMDGPU/AMDGPUISelLowering.cpp
lib/Target/AMDGPU/SIISelLowering.cpp
lib/Target/AMDGPU/SIInstrInfo.cpp
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/AVR/AVRInstrInfo.cpp
lib/Target/Hexagon/HexagonISelLowering.cpp
lib/Target/Hexagon/HexagonMachineScheduler.cpp
lib/Target/MSP430/MSP430InstrInfo.cpp
lib/Target/Mips/MipsInstrInfo.cpp
lib/Target/PowerPC/PPCRegisterInfo.cpp
lib/Target/RISCV/RISCVInstrInfo.cpp
lib/Target/Sparc/SparcISelDAGToDAG.cpp
lib/Target/X86/X86AsmPrinter.cpp
lib/Target/X86/X86FloatingPoint.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/InstCombine/InstCombineInternal.h
lib/Transforms/InstCombine/InstructionCombining.cpp
lib/Transforms/Scalar/GVN.cpp
lib/Transforms/Scalar/JumpThreading.cpp
lib/Transforms/Scalar/SCCP.cpp
lib/Transforms/Utils/BasicBlockUtils.cpp
lib/Transforms/Utils/BreakCriticalEdges.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-blockplacement.ll
test/CodeGen/X86/callbr-asm-branch-folding.ll
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/GVN/callbr-loadpre-critedge.ll
test/Transforms/GVN/callbr-scalarpre-critedge.ll
test/Transforms/JumpThreading/callbr-edge-split.ll
test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll
test/Transforms/MergeFunc/inline-asm.ll
tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
utils/vim/syntax/llvm.vim
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53765.185703.patch
Type: text/x-patch
Size: 139425 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190207/49088268/attachment-0001.bin>
More information about the llvm-commits
mailing list