[llvm] [RISCV] Add Tune to DontSinkSplatOperands (PR #79199)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 25 09:30:03 PST 2024


================
@@ -1082,6 +1082,13 @@ def TuneShortForwardBranchOpt
 def HasShortForwardBranchOpt : Predicate<"Subtarget->hasShortForwardBranchOpt()">;
 def NoShortForwardBranchOpt : Predicate<"!Subtarget->hasShortForwardBranchOpt()">;
 
+// Some subtargets require a S2V transfer buffer to move scalars into vectors.
+// FIXME: Forming .vx/.vf/.wx/.wf can reduce register pressure.
+def TuneDontSinkSplatOperands
+    : SubtargetFeature<"dont-sink-splat-operands", "DontSinkSplatOperands",
----------------
topperc wrote:

The suggestion is something like

```def TuneNoSinkSplatOperands<"no-sink-splat-operands", "SinkSplatOperands", "false"```

Notice the command line option has "No", but the variable in Subtarget field does not.

The use of "false" will make "SinkSplatOperands" default to true, and passing -mattr=-no-sink-splat-operands will set it to false.

https://github.com/llvm/llvm-project/pull/79199


More information about the llvm-commits mailing list