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

Manman Ren mren at apple.com
Tue Oct 9 10:20:43 PDT 2012


Hi Stepan,

+    std::advance(CurOrigArg, Ins[VA.getValNo()].OrigArgIndex - CurArgIdx);
+    CurArgIdx = Ins[VA.getValNo()].OrigArgIndex;
     // Arguments stored in registers.
     if (VA.isRegLoc()) {
       EVT RegVT = VA.getLocVT();
@@ -2709,7 +2713,8 @@
           if (Flags.isByVal()) {
             unsigned VARegSize, VARegSaveSize;
             computeRegArea(CCInfo, MF, VARegSize, VARegSaveSize);
-            VarArgStyleRegisters(CCInfo, DAG, dl, Chain, 0);
+            VarArgStyleRegisters(CCInfo, DAG,
+                                 dl, Chain, CurOrigArg, Ins[i].PartOffset, 0);
Is there any reason you use VA.getValNo() to index Ins for the 1st change and i to index Ins for the 2nd change/

Looks good otherwise,

Thanks,
Manman

On Oct 8, 2012, at 11:15 AM, Stepan Dyatkovskiy wrote:

> 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.
> 
> <byval-scheduler-fix-2.patch><2012-10-04-FixedFrame-vs-byval.ll>




More information about the llvm-commits mailing list