This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/66838] Calling multiple SYSV AMD64 ABI functions from MS x64 ABI one results in clobbered parameters
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 12 Jul 2015 15:21:23 +0000
- Subject: [Bug rtl-optimization/66838] Calling multiple SYSV AMD64 ABI functions from MS x64 ABI one results in clobbered parameters
- Auto-submitted: auto-generated
- References: <bug-66838-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66838
UroÅ Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x86_64
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-07-12
CC| |law at gcc dot gnu.org,
| |ubizjak at gmail dot com
Component|c |rtl-optimization
Target Milestone|--- |5.2
Ever confirmed|0 |1
--- Comment #1 from UroÅ Bizjak <ubizjak at gmail dot com> ---
Confirmed, this one is in postreload pass. The testcase from Comment #0, when
compiled with -O2 creates following dumps:
Register allocator creates correct sequence, _.reload dump shows for
ms_abi_func:
2: NOTE_INSN_FUNCTION_BEG
5: si:DI=`global'
6: di:DI=`*.LC2'
7: call [`sysv_abi_func'] argc:0
REG_EH_REGION 0
8: si:DI=`global'
9: di:DI=`*.LC3'
10: call [`sysv_abi_func'] argc:0
REG_EH_REGION 0
11: si:DI=`global'
12: di:DI=`*.LC4'
13: call [`sysv_abi_func'] argc:0
REG_EH_REGION 0
16: NOTE_INSN_DELETED
and _.postreload shows:
2: NOTE_INSN_FUNCTION_BEG
5: si:DI=`global'
6: di:DI=`*.LC2'
7: call [`sysv_abi_func'] argc:0
REG_EH_REGION 0
8: si:DI=si:DI
9: di:DI=`*.LC3'
10: call [`sysv_abi_func'] argc:0
REG_EH_REGION 0
11: si:DI=si:DI
12: di:DI=`*.LC4'
13: call [`sysv_abi_func'] argc:0
REG_EH_REGION 0
16: NOTE_INSN_DELETED
Please note invalid SI register propagation through function call to (insn 8)
and (insn 11).
Confirmed as rtl-optimization problem, CC added.