[llvm-commits] [ARM] Scheduler FixedFrame object vs byval formal parameters

Stepan Dyatkovskiy stpworld at narod.ru
Mon Oct 8 11:15:27 PDT 2012


Sergei,

Sorry, I forgot to reattach testcase to the reworked patch. Please find 
updated patch in attachment. I also attached testcase separately.

-Stepan.

Sergei Larin wrote:
> Stepan,
>
>    Do you have an example that illustrates your issue? Sorry if you have
> already send it before... Thanks.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: byval-scheduler-fix-2.patch
Type: text/x-patch
Size: 6945 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/9e57f9d1/attachment.bin>
-------------- next part --------------
; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi | FileCheck %s

@.str = private unnamed_addr constant [12 x i8] c"val.a = %f\0A\00"
%struct_t = type { double, double, double }
@static_val = constant %struct_t { double 1.0, double 2.0, double 3.0 }

declare i32 @printf(i8*, ...)

; CHECK:     test_byval_usage_scheduling:
; CHECK:       str     r3, [sp, #12]
; CHECK-NEXT:  str     r2, [sp, #8]
; CHECK-NEXT:  vldr    d16, [sp, #8]
define void @test_byval_usage_scheduling(i32 %n1, i32 %n2, %struct_t* byval %val) nounwind {
entry:
  %a = getelementptr inbounds %struct_t* %val, i32 0, i32 0
  %0 = load double* %a
  %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([12 x i8]* @.str, i32 0, i32 0), double %0)
  ret void
}


More information about the llvm-commits mailing list