[PATCH] D92842: [RFC][SelectionDAG] Add Target-Independent Compiler Barrier

Sam Elliott via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 10 08:52:07 PST 2020


lenary added inline comments.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:28637
+  // COMPILER_BARRIER codegens to a 0-byte instruction.
+  return SDValue(DAG.getMachineNode(TargetOpcode::COMPILER_BARRIER, dl, MVT::Other, Op.getOperand(0)), 0);
 }
----------------
craig.topper wrote:
> Would it make sense to have a SelectionDAG::getCompilerBarrier method that would hide most of the boilerplate for creating these nodes?
Almost certainly.

One thing I did run into was I wanted to keep the ordering in the barrier around for later passes - but I ran into issues on x86 where the immediate I was using to represent it was getting allocated into a register and that caused instruction verification to fail. I could look at bringing that back if people thought it was useful (for instance, later Machine Passes may want to know if they can hoist/sink loads and stores past a barrier with more granularity than just "No").


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D92842



More information about the llvm-commits mailing list