This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/24003] [4.1 Regression] ACATS FAIL 17 regressions on x86-linux, fixed and decimal arithmetic broken
- From: "ebotcazou at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Oct 2005 15:33:45 -0000
- Subject: [Bug middle-end/24003] [4.1 Regression] ACATS FAIL 17 regressions on x86-linux, fixed and decimal arithmetic broken
- References: <bug-24003-7210@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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