[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