Displaying 10 results from an estimated 10 matches for "_z3fooii".
2014 Sep 02
3
[LLVMdev] LICM promoting memory to scalar
...(i = 0 ; i < n; i += incr ) {
if (i < n/2)
globalvar += incr;
}
return;
}
GCC output:
$ aarch64-linux-gnu-g++ -S -o - -O3 -ffast-math -march=armv8-a+simd test.cpp
.arch armv8-a+fp+simd
.file "test.cpp"
.text
.align 2
.global _Z3fooii
.type _Z3fooii, %function
_Z3fooii:
.LFB0:
.cfi_startproc
cbz w0, .L1
adrp x6, globalvar
add w5, w0, w0, lsr 31
ldr w3, [x6,#:lo12:globalvar] <== hoist load of globalvar
mov w2, 0
asr w5, w5, 1
.L4:...
2014 Sep 02
2
[LLVMdev] LICM promoting memory to scalar
...>> }
>>
>> GCC output:
>>
>> $ aarch64-linux-gnu-g++ -S -o - -O3 -ffast-math -march=armv8-a+simd test.cpp
>> .arch armv8-a+fp+simd
>> .file "test.cpp"
>> .text
>> .align 2
>> .global _Z3fooii
>> .type _Z3fooii, %function
>> _Z3fooii:
>> .LFB0:
>> .cfi_startproc
>> cbz w0, .L1
>> adrp x6, globalvar
>> add w5, w0, w0, lsr 31
>> ldr w3, [x6,#:lo12:globalvar]...
2014 Sep 03
3
[LLVMdev] LICM promoting memory to scalar
...(i = 0 ; i < n; i += incr ) {
if (i < n/2)
globalvar += incr;
}
return;
}
GCC output:
$ aarch64-linux-gnu-g++ -S -o - -O3 -ffast-math -march=armv8-a+simd
test.cpp
.arch armv8-a+fp+simd
.file "test.cpp"
.text
.align 2
.global _Z3fooii
.type _Z3fooii, %function
_Z3fooii:
.LFB0:
.cfi_startproc
cbz w0, .L1
adrp x6, globalvar
add w5, w0, w0, lsr 31
ldr w3, [x6,#:lo12:globalvar] <== hoist
load of globalvar
mov w2, 0
asr ...
2007 Mar 25
2
[LLVMdev] Live intervals and aliasing registers problem
...llowing excerpts from my
RegisterInfo.td.
def V4R0 : R4v<0 , "V4R0 ", []>, DwarfRegNum<0>;
def R0 : Rg<0 , "R0", [V4R0]>, DwarfRegNum<0>;
def R1 : Rg<1 , "R1", [V4R0]>, DwarfRegNum<1>;
when trying to compile:
define void @_Z3fooii(i32 %a, i32 %b) {
entry:
%retval = select i1 false, i32 %a, i32 %b ;
<i32> [#uses=0]
ret void
}
I get this error:
entry (0x8503b90, LLVM BB @0x8501b00, ID#0):
%reg1024 = ORI %R0, 0
%reg1025 = ORI %R1, 0
RETL
Machine Function
*****...
2007 Mar 27
0
[LLVMdev] Live intervals and aliasing registers problem
...lt;0 , "V4R0 ", []>, DwarfRegNum<0>;
>
> def R0 : Rg<0 , "R0", [V4R0]>, DwarfRegNum<0>;
> def R1 : Rg<1 , "R1", [V4R0]>, DwarfRegNum<1>;
How are R4v and Rg defined?
>
> when trying to compile:
>
> define void @_Z3fooii(i32 %a, i32 %b) {
> entry:
> %retval = select i1 false, i32 %a, i32 %b ;
> <i32> [#uses=0]
> ret void
> }
>
> I get this error:
>
> entry (0x8503b90, LLVM BB @0x8501b00, ID#0):
> %reg1024 = ORI %R0, 0
> %reg1025...
2007 Apr 03
2
[LLVMdev] Live intervals and aliasing registers problem
...er> aliases> : MyReg<n>
{
let Num = num;
let Aliases = aliases;
}
class R4v<bits<6> num, string n, list<Register> aliases> : MyReg<n> {
let Num = num;
let Aliases = aliases;
}
>>
>> when trying to compile:
>>
>> define void @_Z3fooii(i32 %a, i32 %b) {
>> entry:
>> %retval = select i1 false, i32 %a, i32 %b ;
>> <i32> [#uses=0]
>> ret void
>> }
>>
>> I get this error:
>>
>> entry (0x8503b90, LLVM BB @0x8501b00, ID#0):
>> %reg...
2016 Feb 08
3
distinguish program and temporary variables
I'm writing a pass that eliminates some variables. To show the effect of
the pass i need to show that I deleted the variables that originally appear
in the user code, not temporary variables added by llvm.
On Mon, Feb 8, 2016 at 5:59 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> > On Feb 8, 2016, at 6:39 AM, Mohammad Norouzi via llvm-dev <
> llvm-dev at
2015 Nov 25
2
need help for customized backend LowerFormalArguments
...R3, R4, R5, R6, R7, R8, R9, R10)>;
// this is also general purpose register class
def GRRegsAdditional : RegisterClass<"FOO", [i32], 32,
(add R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14,
R15, SP)>;
If I have a piece of bitcode looks like this:
define i32 @_Z3fooii(i32 %a, i32 %b) #0 {
%1 = add nsw i32 %a, %b
ret i32 %1
}
I want the assembly looks like this:
move v0, p0
move v1, p1
add-int v10, v0, v1
return v10
So far, I have tried is to implement the LowerFormalArguments() like this:
SDValue FOOTargetLowering::LowerFor...
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
These are exactly the sorts of code transformations we want to allow by
delaying the outlining until later. By keeping such code inlined in the
parent function until after optimization, we enable a lot of core
optimizations like SROA. For example, we should be able to completely
eliminate wrappers like unique_ptr that would otherwise stay around due to
the pointer escaped to the destructor call
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
...gh. If an instruction is in the landing pad block but not inside a begincatch/endcatch pair it will be interpreted as cleanup code. I think that is OK, but it’s something we’ll need to be aware of.
For reference, Joseph’s first scenario will look like this:
; Function Attrs: uwtable
define i32 @_Z3fooii(i32 %a, i32 %b) #0 {
entry:
<…snip…>
store i32 %a, i32* %a.addr, align 4
store i32 %b, i32* %b.addr, align 4
invoke void @_Z11maybe_throwv()
to label %invoke.cont unwind label %lpad
lpad: ; preds = %entry
%4 = landingpad { i8*,...