Displaying 3 results from an estimated 3 matches for "fill_array".
2020 Jun 10
2
LoopStrengthReduction generates false code
The IR after LSR is:
*** IR Dump After Loop Strength Reduction ***
; Preheader:
entry:
tail call void @fill_array(i32* getelementptr inbounds ([10 x i32], [10 x i32]* @buffer, i32 0, i32 0)) #2
br label %while.body
; Loop:
while.body: ; preds = %while.body, %entry
%lsr.iv = phi i32 [ %lsr.iv.next, %while.body ], [ 0, %entry ]
%uglygep = getelementptr i8, i8* bitcast...
2020 Jun 09
2
LoopStrengthReduction generates false code
...<----
>>
>> LLVM assembly:
>>
>> @buffer = common dso_local global [10 x i32] zeroinitializer, align 4
>>
>> ; Function Attrs: nounwind
>> define dso_local void @some_main(i32* %result) local_unnamed_addr #0 {
>> entry:
>> tail call void @fill_array(i32* getelementptr inbounds ([10 x i32], [10 x i32]*
>> @buffer, i32 0, i32 0)) #2
>> br label %while.body
>>
>> while.body: ; preds = %entry, %while.body
>> %i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]
>> %array...
2020 Jun 09
2
LoopStrengthReduction generates false code
...or 8 in many passes) and the memory is not byte addressed.
Thanks,
Boris
----8<----
LLVM assembly:
@buffer = common dso_local global [10 x i32] zeroinitializer, align 4
; Function Attrs: nounwind
define dso_local void @some_main(i32* %result) local_unnamed_addr #0 {
entry:
tail call void @fill_array(i32* getelementptr inbounds ([10 x i32], [10 x i32]* @buffer, i32 0, i32 0)) #2
br label %while.body
while.body: ; preds = %entry, %while.body
%i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]
%arrayidx = getelementptr inbounds [10 x i32], [10 x i32]...