Displaying 7 results from an estimated 7 matches for "sparctargetlow".
2016 Apr 27
2
[Sparc] builtin setjmp / longjmp - need help to get past last problem
...::EH_SJLJ_SETJMP, MVT::i32, Custom);
+ setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
+
if (Subtarget->is64Bit()) {
setOperationAction(ISD::ADDC, MVT::i64, Custom);
setOperationAction(ISD::ADDE, MVT::i64, Custom);
***************
*** 1808,1835 ****
const char *SparcTargetLowering::getTargetNodeName(unsigned Opcode) const {
switch ((SPISD::NodeType)Opcode) {
! case SPISD::FIRST_NUMBER: break;
! case SPISD::CMPICC: return "SPISD::CMPICC";
! case SPISD::CMPFCC: return "SPISD::CMPFCC";
! case SPISD::BRICC: return "SPISD::BR...
2016 Apr 15
3
[Sparc] Load address with SETHI
Hi,
I'm trying to implement __builtin_setjmp / __builtin_longjmp for Sparc processors. I think I'm very close, but I can't work out how to issue BuildMI-type instructions to load the address of the recovery location (set in setjmp) into a register using the SETHI / OR combination. I can't see any equivalent code anywhere else in Sparc.
I imagine this is similar if I try to make a
2015 Apr 02
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
...d i64, i64* @x, align 8
store i64 %0, i64* @y, align 8
turned into just "ldd, std" instructions, as it does in GCC, rather than
loading and storing the two 32bit halves of the variables separately.
To allow that, I tried adding:
addRegisterClass(MVT::i64, &SP::IntPairRegClass)
to SparcTargetLowering::SparcTargetLowering in 32bit mode.
Doing that then makes load/store work. But it causes llvm to try to use i64
operations for *everything*, which of course fails for all other
operations, since there's no such instruction pattern for them.
Okay, so I then try setting all the operations...
2015 Apr 02
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
...@y, align 8
>> turned into just "ldd, std" instructions, as it does in GCC, rather than loading and storing the two 32bit halves of the variables separately.
>>
>> To allow that, I tried adding:
>> addRegisterClass(MVT::i64, &SP::IntPairRegClass)
>> to SparcTargetLowering::SparcTargetLowering in 32bit mode.
>>
>> Doing that then makes load/store work. But it causes llvm to try to use i64 operations for *everything*, which of course fails for all other operations, since there's no such instruction pattern for them.
>>
>> Okay, so I...
2015 Apr 03
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
...o just "ldd, std" instructions, as it does in GCC, rather than loading and storing the two 32bit halves of the variables separately.
>>>>
>>>> To allow that, I tried adding:
>>>> addRegisterClass(MVT::i64, &SP::IntPairRegClass)
>>>> to SparcTargetLowering::SparcTargetLowering in 32bit mode.
>>>>
>>>> Doing that then makes load/store work. But it causes llvm to try to use i64 operations for *everything*, which of course fails for all other operations, since there's no such instruction pattern for them.
>>>&g...
2018 Dec 17
4
In ISel, where Constant<0> comes from?
Hello, LLVM devs.
I'm compiling the following simple IR:
define dso_local i32 @main(i32 %argc, i8** %argv) {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
%argv.addr = alloca i8**, align 8
store i32 0, i32* %retval, align 4
store i32 %argc, i32* %argc.addr, align 4
store i8** %argv, i8*** %argv.addr, align 8
ret i32 0
}
using `llc -march=sparc
2019 Dec 18
5
RFC: Opaque pointer status and future direction
...tExprWithNewAddressSpace 2
llvm::FastISel::lowerCallTo 2
llvm::RISCVTargetLowering::getTgtMemIntrinsic 2
llvm::SparcTargetLowering::LowerCall_32 2
addByteCountSuffix 2
tryToShorten 2
llvm::InstComb...