| Rev |
Log message |
Author |
Age |
Path |
| 4037 |
Fix bug #969, #970.
1. test case
#969 and #970 can be simplified to the following case:
struct I3 {
int a, b, c;
};
extern struct I3 foo();
void bar() {
struct I3 a;
a = foo();
}
The struct I1 can also be replaced by:
struct F3 {
float a, b, c;
};
2. IR dump
Open64 will allocate a temporary on stack for the return value. The IR
after MSTID lowering looks like:
MCALL 126 <1,51,foo> # flags 0x7e {line: 1/7}
I8I8LDID 1 <1,5,.preg_I8> T<5,.predef_I8,8> # $r1
I8STID 0 <2,2,_temp_.Mreturn.foo0> T<5,.predef_I8,8> {line: 0/0}
I8I8LDID 7 <1,5,.preg_I8> T<5,.predef_I8,8> # $r7
I8STID 8 <2,2,_temp_.Mreturn.foo0> T<5,.predef_I8,8> {line: 0/0}
[2]: _temp_.Mreturn.foo0 <2,2> Variable of type I1 (#53, KIND_STRUCT)
Address: 0(_temp_.Mreturn.foo0<2,2>) Alignment: 8 bytes
location: file (null), line 0
Flags: 0x00400000 temp, XLOCAL
Sclass: AUTO
[53]: I3 : (f: 0x1000 content_seen) size 12 M: STRUCT
0 a .predef_I4 (#4) align 4
fl:0x0000
4 b .predef_I4 (#4) align 4
fl:0x0000
8 c .predef_I4 (#4) align 4
fl:0x0001 last_field
The size of _temp_.Mreturn.foo0 is only 12 byte. The I8STID will
overwrite some other variables on stack. For float struct F3, two
F8STID will be generated.
Approved by Sun Chan. Thanks Huan Luo to test this patch on PPC. |
laijx |
217d 23h |
/trunk/ |
| 4035 |
Configure-based build system for PPC native compiler. Reviewed by David Coakley |
luohuan |
225d 02h |
/trunk/ |
| 4024 |
Update my email address |
dgilmore |
263d 08h |
/trunk/ |
| 4022 |
Fix bug 1004 : Link Error at '-Ofast ': ipa_link died due to signal 11
Reviewed by Mr SunChan |
shenruifen |
271d 07h |
/trunk/ |
| 4021 |
Added two files that should have been added in
previous commit r4020 titled:
Fix Is_Target_XXbit duplicate CPP macro name warning.
CR (also for r4020): Sun Chan |
dgilmore |
272d 05h |
/trunk/ |
| 4020 |
Fix Is_Target_XXbit duplicate CPP macro name warning.
A previous fix shouldn't have included config_targ.h in
cmd_line.c, which causes compiler warnings concerning
duplicate macro names.
For TARG_X8664 define function is_Target_ABI_n32, to
encapsilate type-of-target check, added new files
cwh_targ_info.cxx in sgi directory (where it is valid to
include config_targ.h). Added header file cwh_targ_info.h,
which can be safely imported by files in the fe90 directory.
Added a comment warning about the issue at hand above
macro definitions.
CR: Sun Chan.
Note this commit is missing several files, committed
r4021 (build with that version instead). |
dgilmore |
272d 05h |
/trunk/ |
| 4017 |
Fixed typo in warning string for error message type EC_Uninitialized.
CR: Sun Chan |
dgilmore |
274d 04h |
/trunk/ |
| 4016 |
X8664 -m32 FP compilation mode change when compiling with GCC.
When compiling with GCC at 32, add -mfpmath=sse -msse2, which
prevents i387 FP instructions from being generated, otherwise the
values for probabilities and frequencies can easily diverge between
the 32 and 64 bit builds of the compiler.
CR: Sun Chan |
dgilmore |
274d 04h |
/trunk/ |
| 4015 |
Changed a test in INTERFERE_MGR::Create_End.
TARG_X8664 specific change. This tests determines
whether an interference "set" is stored as a vector or a bit vector.
This test will now generate the same result given the same input
parameters whether the compiler is built for 32 or 64 bit. See
associated comments concerning the issues at hand.
CR: Sun Chan |
dgilmore |
274d 04h |
/trunk/ |
| 4014 |
Fixed bug 999, C10 constant emission problem.
CR: Jian-Xin Lai |
dgilmore |
274d 14h |
/trunk/ |
| 4013 |
Fixed bug in Targ_Print for X8664 when printing C10 constants.
CR: Jian-Xin Lai |
dgilmore |
274d 14h |
/trunk/ |
| 4012 |
Fixed bug in expand_strcmp_bb() exposed by 64-bit build of compiler.
CR: Jian-Xin Lai |
dgilmore |
274d 14h |
/trunk/ |
| 4011 |
Host related configure settings should not be determined by target setting.
This problem was exposed by allowing the X86 compiler to be built either
32 or 64 bit (independent of how it is built, the X86 compiler can target
both 32 or 64 bit architectures.
CR: David Coakley |
dgilmore |
274d 14h |
/trunk/ |
| 4010 |
Configure fix to handle GNU Gold linker.
Without this change hidden attribute is configured as not being
supported.
We can safely assume that the GNU Gold linker supports this attribute.
I don't know of any Linux distributions that currently use the GOLD
linker by default, we just discovered this issue when /usr/bin/ld was
replaced by a GOLD linker.
CR: David Coakley |
dgilmore |
275d 10h |
/trunk/ |
| 4009 |
Add configuration option --enable-whirl-id.
This configure option enables the debugging ID field in WHIRL nodes.
Changed CPP macro name from USE_UNIQUE_MAP_ID_FOR_DEBUG to
WHIRL_USE_UNIQUE_ID_FOR_DEBUG to better describe the
functionality being added.
CR: David Coakley |
dgilmore |
275d 10h |
/trunk/ |
| 4008 |
Add configure option --with-build-ffe-optimize
Allow building FFE with debugging/tracing enabled. Currently building
with --with-build-optimize=DEBUG only builds the FFE with symbolic
debugging.
TODO: cleanup debug-mode assertions in the FFE so that this configure
option is not needed.
CR: David Coakley |
dgilmore |
275d 10h |
/trunk/ |
| 4003 |
Adding myself to the MAINTAINERS |
rramanar |
282d 01h |
/trunk/ |
| 4002 |
Fix for undefined symbol error caused by rev 3993.
Static function can't be declared as extern.
Author of this patch: xiaojing-zhang
Code Review:Jian-xin |
zhuqing |
285d 07h |
/trunk/ |
| 4001 |
Fix bug1000, OP_NEED_PAIR should be decided by WN_rtype, not ST_mtype.
Author of this patch: Xiao-jing zhang
Code Review: Jian-xin |
zhuqing |
292d 04h |
/trunk/ |
| 4000 |
Updated the gatekeepers list |
shivaram |
293d 19h |
/trunk/ |