Displaying 4 results from an estimated 4 matches for "grx32".
Did you mean:
gr32
2017 Nov 30
2
TwoAddressInstructionPass bug?
...ile it actually shouldn't.
The attached patch and test case triggers an assert in TwoAddress.
(bin/llc ./tc_TwoAddr_crash.ll -mtriple=s390x-linux-gnu -mcpu=z13)
The only change in the patch is to remove the side effects flag from one
instruction:
- def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
+ let hasSideEffects = 0 in
+ def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
The input to TwoAddress is:
BB#0: derived from LLVM BB %0
Live Ins: %r2l
%vreg0<def> = COPY %r2l<kill>; GR32Bit:%vreg0
%vreg9<def,tied1> = NIFMux %vreg0...
2017 Nov 30
0
TwoAddressInstructionPass bug?
...t.
>
> The attached patch and test case triggers an assert in TwoAddress. (bin/llc ./tc_TwoAddr_crash.ll -mtriple=s390x-linux-gnu -mcpu=z13)
>
> The only change in the patch is to remove the side effects flag from one instruction:
>
> - def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
> + let hasSideEffects = 0 in
> + def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
>
> The input to TwoAddress is:
>
> BB#0: derived from LLVM BB %0
> Live Ins: %r2l
> %vreg0<def> = COPY %r2l<kill>; GR32Bit:%vreg0
>...
2020 Feb 22
2
COPYs between register classes
...2-bit GPRs with special instructions. These instructions can
only perform the copy using low 32-bit parts of the 64-bit GPRs. As
reported and discussed at https://bugs.llvm.org/show_bug.cgi?id=44254,
this is currently broken due to the fact that the default register class
for 32-bit integers is GRX32, which also contains the high 32-bit part
registers.
I have tried to find a simple way to constrain the register class of
such copies (also at -O0), but this turned out to not be quite simple.
Just selecting a pseudo instruction with a custom inserter does not seem
to work since CopyToReg/Copy...
2018 May 30
2
InstrEmitter::CreateVirtualRegisters handling of CopyToReg
Hi,
I wonder if anyone has any comment on a patch like:
diff --git a/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
b/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
index 65ee3816f84..4780f6f0e59 100644
--- a/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+++ b/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
@@ -243,18 +243,21 @@ void InstrEmitter::CreateVirtualRegisters(SDNode
*Node,
if (!VRBase &&