------- Comment #22 from ebotcazou at gcc dot gnu dot org 2005-10-25 15:33
-------
Jan,
> Can you please check if -fno-tree-ter makes the bug go away? We've
> chatted recently with Jakub concerning bug in argument saving in nested
> call and -maccumulate-outgoing-args. I was under impression that we
> should no longer produce the nested calls out of ter but aparently it is
> still being done (that results in inferrior code quality too as we can't
> generated nested calls very sanely)
Would that be an acceptable fix (not rematerializing nested calls)?
> Also can you also, please, point me closer to place in .optimized dump
> where the misscompilation happens?
<L12>:;
- temp.456 = d[3]{lb: 1 sz: 4};
- t1.427 = system__arith_64__Oconcat (temp.433, temp.456);
- temp.460 = d[4]{lb: 1 sz: 4};
- D.712 = system__arith_64__Orem (t1.427, zlo);
- D.713 = system__arith_64__lo (D.712);
- t2.450 = system__arith_64__Oconcat (D.713, temp.460);
- D.715 = system__arith_64__Odivide (t2.450, zlo);
- D.716 = system__arith_64__lo (D.715);
- D.717 = system__arith_64__Odivide (t1.427, zlo);
- D.718 = system__arith_64__lo (D.717);
- qu = system__arith_64__Oconcat (D.718, D.716);
+ t1.427 = system__arith_64__Oconcat (temp.433, d[3]{lb: 1 sz: 4});
+ t2.450 = system__arith_64__Oconcat (system__arith_64__lo
(system__arith_64__Orem (t1.427, zlo)), d[4]{lb: 1 sz: 4});
+ qu = system__arith_64__Oconcat (system__arith_64__lo
(system__arith_64__Odivide (t1.427, zlo)), system__arith_64__lo
(system__arith_64__Odivide (t2.450, zlo)));
ru = system__arith_64__Orem (t2.450, zlo);
goto <bb 37> (<L50>);
-: -O1 -fno-tree-ter
+: -O1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24003