This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

optimization/6810: GCC 3.1 generates incorrect code if -O2 -mcpu=pentium3 -fomit-frame-pointer are specified



>Number:         6810
>Category:       optimization
>Synopsis:       GCC 3.1 generates incorrect code if -O2 -mcpu=pentium3 -fomit-frame-pointer are specified
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Fri May 24 21:36:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Peter Joachim
>Release:        gcc version 3.1
>Organization:
>Environment:
Windows NT 4.0 SP6, Pentium III (Coppermine) 850 MHz, Cygwin
>Description:
Compiling the code sample using -O2 -march=pentium3 -fomit-frame-pointer generates code that does not correctly calculate the addresses of local variables.
Namely the address of local array c1 in testfunc2 is not correctly passed to dummy_func.
The reason is the leal instruction (*) in the prologue to testfunc2 that incorrectly appears before _alloca is called, but should be placed after the _alloca call.
_testfunc2:
        pushl   %ebp
        movl    $24076, %eax
        pushl   %edi
        pushl   %esi
        pushl   %ebx
        leal    18064(%esp), %esi (*)
        call    __alloca
        movl    %esi, 8(%esp)
>How-To-Repeat:
Correct code is generated with -fno-omit-frame-pointer:
$ gcc -Wall -O2 -march=pentium3 -fno-omit-frame-pointer -fverbose-asm bugofp.i -o bugofp.exe
$ ./bugofp.exe
a1a1a1a1 a2a2a2a2 a3a3a3a3 a4a4a4a4 a5a5a5a5 a6a6a6a6 a7a7a7a7 a8a8a8a8 a9a9a9a9 aaaaaaaa abababab acacacac

-fomit-frame-pointer triggers the bug:
$ gcc -Wall -O2 -march=pentium3 -fomit-frame-pointer -fverbose-asm bugofp.i -o bugofp.exe
$ ./bugofp.exe
a1a1a1a1 a2a2a2a2 0 a4a4a4a4 a5a5a5a5 a6a6a6a6 a7a7a7a7 a8a8a8a8 a9a9a9a9 aaaaaaaa abababab acacacac
>Fix:
Don't specify -march=pentium3 -fomit-frame-pointer
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bugofp.i.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bugofp.i.bz2"

QlpoOTFBWSZTWQrPLYoABYpfgH06W////5MkAg6/79/6YBA+8BufcPb7u7CVmvs1u8gLK9t3vZp9
9fcPVNAyfVt2z616A64qHEcMSCMiNT0ap6n6TFPU2U9T9JH6p6h6IAAAAaapvUyhQaaA9T1GgGgD
QAAaA0aAkJTJNU9Ro9T1PSA8mkxqGgAAABoASaSRNEIxJ6JpH+qT0EGgNB6J6gDR6jJoIklNIymT
0wmTRPJGygGjQ0ADIAASIQhDRMCjFT2TTSQPRA0aNPSAGjJuOFjCMEZIwJEgeikoijAV2gdWdUKy
CyfewPvTZbSgjF8NskzYpXChVhtr/GaEgw1Y2pfhyUtbR9zfeMrJpU2c6zSTNIJEk0gpUrWMbWta
VLZrLzIq9J00YqiRVYqWhVYiqDqlQKJbZUhUAWSCxZEcS4oolJSlrFtpWrRosbSopWKFSU43n+ad
NpJ3SQkm8ICxEgEdCJSIA3zRw4MMMGuRiuPW9QhBINRTFuA0uhOJVCbuqCJyiQaWNmGLPsDAYB8Y
fQG9hgEtaBAn7alM8U0vrHW7ks2WMWCQ2VQxIrcykxIouTlQ3ammESSfwHG1bLV2ru30CWakNYqo
1qx/MslVFVwgz7AfNo4yKUtbVkSVCrC0uNhlkBjJHExBEyMQtK0qgjRssEaLdqGCGaC3LIraU4tV
8tOxpZqe8JygcHge3iAfyPUTwYHkg9Ih4hYLBYpmGkkNSFEYSSUKSksJmY+RvX/Dx7Z8AVFQCrha
PI7gPsaO3BXNpeqadcNVUkkkk5Jx8nJuviBfJ5ZscbmOWWtHK+qT4RFG2BYyV9jjBRQWfiZUNWrU
hFqQqkOV2Uctsyts8qCcMw9r5EwXjVEh7RDUumPXO+tWY0Ny/R2ohLH05yig6wufhYAb7FXhlnJs
R1053DUjunHgp+oqs57m9EiMHp0OIaFYooiBBQYZar3IY73E2TDg3CQ2SYPuGGuWt3H8jA2NlskU
6BsanHN9/OzkhsDjFKbBmCGEiyp41xzKrQeVjJBlVEDiIbaecwqxdqoIZaIBtV0hF7DMNsG5sIvC
sYmb0RYHK03NpsqS3NzUxhBLb0pltZmkXSlrY0SmKaVipHSB0iYZOw6cbSf0PkLUETudm5FfKdEX
zeqkB57lPJDdPcFCGDNQ/fjv5xUb0eq1s5EfDakHJCUKjoNR8zLsECxJySFGAFRVUj0f7frw/79P
bx+zhLvBt2VRYvAo4icIb2/lRC6IBIoyI5toxtFc/LU5OrAV1QRgshi18O1zOtprU5yh84SJZDK+
OVMVelLGkQW2laxalatt5NclRmPR6Wk349UIHkapISsAkWRQlUJUJEZAZEIwtwJo6TEXGvIOXNQh
3+jugFqVLakD1+Pwfv35BN4TYeQyLIoAJEpAsczMnPBtc9ksCIP4oDnsvGXnz7Oym/NYdq1YtPQ8
Tj5geEBjyEBmgOAFlzt03vXe2R65eLAdXqXamElYYFSMLN3uNthn1gYqhj1AG8BtAFxgWLINYHgA
oQLZhGCmYAvbx5G08G/PxSXfQ+d0lcbr6ECgUMWRSAhoyYTMRj3yIPtWGH39PhJJJJVeXlzqtgHk
BC0N5CiDdKmS8AcBlbDcbhuMYbasr5ab3F3lZCZcpmc5zTmHG26MNaZtxhl8ZGZA3GL4cECusAJc
J4XgqwZ55yuAFtBlgGEaigLXMFxuLipemnL05liX9uwuZnjNtDBCv3OFZWBOeNURC9KnbSm/buKy
MXJWetSqHYa04ELmRHUqxmKVb8VnYauXNjNvDVJr0m3rYP4Ljoy7H1UTR6ZdSwoDIUtNqOCgZIBB
i3QtfLov0X36dmvqzGvuyYWZrKKPTSQ+OdQGjhu/tcaFXuZad8qXSZk509mecDzmfX2OissF6Mob
BxyRDlokqzQEBEgyolgZ0540JKMIbro00gHaRgPUGJJ8gQuycSHDkn5VHq9K890WBGMIxkYQbTIl
vwqPMkhfoyLW7xym4oUIUQhCm22zjfFxVV9HZfKEHa9TPeiTUkkgSJ+gdoO8Axjlxxxxx5bpSZIP
K0pIp5O7u8ms3m8GxvKQu7rHwxPZACXBCen2MAk7ySE1CB7REYQWCKIEkQOjXUIQVG32sIVYakBP
WwbacKAlE+DgNCkHgxJC/86wXSIG2pwQfN0NDfkvrgVwD67STmNrSqs50/bJ9SAqMWCC4xbEnJVq
Wf+ZrNcwO0cNjzIh9L889vh0uBarSi3aCbToZBsejMmkBDkjYgl1tmrFlu524NZMsnhONVuS8HD4
sCBofxqcNHBl90a0Km7V2SUV1Qgjrmq+YsvigKycPAkaa7l0kEAsSNmgZH1e4AZ6A6jVnDVv+8+P
NcODNhUlSVOJWwJzgvos7h5vTG20O60mSdbrJOrGSdb7JOrWe+L+svz7SALrg/1laCnjpIOl+ux+
BjOLItqHBAqvcFgWiyuB8wElDB7DZZ7sw220A37MhR5W30IEtmZQbF4jGMY9nd6tZEuXs9TSOX2/
ELhT5vKfsX+a+pAJXLIcqdA+5WLdADgu4c5ERBJJQEEVgt3Rw3AEq8hqCv7QExJCyXYQ9oHLqyT8
wySCrBVUchQlZiS9jlsNiW5JIVrmbPl+mvPcAl0k+kxvYDGIbFVSRiIoqCgrAwh4AeISA6Y5DFzq
RvgSWoDYEsQTIvbhdBjGMdy7O+MBvBqnLJMqam/M2W+Xj1rFxNcAEdGkEkHIACcoMa6M21z7EQLj
aL3SNgfLeJNYhb7mjNrn1u3e2vFvvylH4xBBAG8QLRicE6WznSr6VU4dIBKDiwvtgDANtoYMTej2
3Er9nw01DcsxJCxQgJ6OwCTCkJFhJKN0uwP7/ZRIYRoyT1PKrZAkWNu8jhLCzYTu2W2F7xdoCVJJ
puGMTSYwhRGWpVhEBn2P7ufU0L9eviybtOiEobVFdw2xoQmjvpKfjTd7+WKRWbnr/b1L3ivsdntO
7szJlnM8uHD8OHD5/J8c3evzPbNTSivMZUtbzj6H1ZYORRqgRvuOBu3cAcALBli/NxiocRk8gIRw
pYsUCCQDireZ7jHqAl5ggD3jJAN3gU1bxpI3PWBkQFv51Q07vDj47wmvm5LxxG73/giAQSGZ21EC
uuU5dDz+eL+KXEBoEXnaYXBLaNyMCY9iq5ashzTZFJBuiSI8iiqwTh8VpVW0+KEO2B8mPp9I8tHn
IG/86MOxmn8MhC9POIZGnUCY8qNGZVibCNvene0Iau+AaASQbQpmW+yhhAa231mqyCmABYpt3DVx
twvZyTqPfon2MfXT5IgsWE43Dt7/indLoBLvCef4AuUjSG0fRBiZa9nebus6pYyYDYhsTaQasUq9
ezepq4aJt4DdqWu1os74R4Jf4yDELMyhd4twm4JbuzYBW8K+BjAEo96bJUDazEBdKgVISJuU7LWc
bqtmG2/SaIBy6QkB5AwUJECAMBCKIxI0ALWOFIGM8AXDCz3NZrkkg47RFdNM5axjIdhXqgjKVEy7
+PFqqZimd0W+wx0poF6epu5MRmmRJy8uoMBLklN5EFjqBUA2uhmg731G9DiRjtaxYtst8gwzxarr
W3SCnER14XdAze4BKABLfBCXfZVvAFbjlEYWTxycZSNXD2ARjbXRI3xLEB4IHvG3uK2ZUdPoeNlz
XgpQCXtQjzWlkx7QZA0cUguhII2k+DKD4/jr0xkgPFAuFafu9aeEbPdjMk3ILB0MvycySpk7AdVX
u8s1VG7oRo++/vmhvcm4V4JSYqDEA3W6i3fm8dtXEVU3HQDpAVou9J4upp6gChTMOFy3oSBgGb6V
u2AZDQPzb9hvr6C8kBYv0LafHTvJJkqdbYgma4OOyBPmPOsx0qFGRQgnbRZQ1BrEkFkFigskRkPQ
5AZ6KG2QwciFpgIGMZKQDmSGphFkAFOoJpkzSpqKTUksDNURTRd90pqOtmsltY0coAkPjee9oMmh
WG1hhaoXamr1QrMLesAtB5MRWJxEYnrYvXZraNWAiB2BFypQCUR7K7cs9aYbK6aBmKkKzAufBIrT
ib+O7bbdyAZfCeLh0Z1HDVwfcwi/LlQkU3zkxGoJjpAWIoWMxhqsgotOAhbBvptg9cHRE44t6NoB
UQzAF9wITXOIAxgoZUV7aJfhcVjzzW6RvYpWq1loipuHYhvaOwd5Y1xwAFjAb0AlvCAzOuxAdznB
mS21q+8BjYjkB0kU2bbbb4GRoTztHi16Ftx0r380j53qYJBNLxYh4a3c1RgkrVIQaoFrEKXHp06G
uHtUtVrBQVCzp2tGxH/F3JFOFCQCs8tigA==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]