[llvm] r276872 - GlobalISel: remove variable_ops from output list.
Quentin Colombet via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 12 18:57:47 PDT 2016
Hi Tim,
Can we fix MCInstrDesc to do the right thing instead?
The description of the instruction seems odd.
Cheers,
-Quentin
> On Jul 27, 2016, at 7:30 AM, Tim Northover via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>
> Author: tnorthover
> Date: Wed Jul 27 09:30:49 2016
> New Revision: 276872
>
> URL: http://llvm.org/viewvc/llvm-project?rev=276872&view=rev
> Log:
> GlobalISel: remove variable_ops from output list.
>
> The instance in the input operand list allows both inputs and outputs,
> but the one in (outs) is not treated specially which leads to the
> MachineVerifier invoking UB (looking at an invalid MCInstrDesc field).
>
> No functional change except in UBSan builds (maybe, who knows!), where
> it fixes the legalize-add.mir test.
>
> Modified:
> llvm/trunk/include/llvm/Target/GenericOpcodes.td
>
> Modified: llvm/trunk/include/llvm/Target/GenericOpcodes.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/GenericOpcodes.td?rev=276872&r1=276871&r2=276872&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/GenericOpcodes.td (original)
> +++ llvm/trunk/include/llvm/Target/GenericOpcodes.td Wed Jul 27 09:30:49 2016
> @@ -104,7 +104,7 @@ def G_STORE : Instruction {
> // indexes. This will almost certainly be mapped to sub-register COPYs after
> // register banks have been selected.
> def G_EXTRACT : Instruction {
> - let OutOperandList = (outs variable_ops);
> + let OutOperandList = (outs);
> let InOperandList = (ins variable_ops);
> let hasSideEffects = 0;
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list