Subversion Repositories Open64

[/] [trunk/] - Rev 4037

Rev

Filtering Options

Clear current filter

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/

1 2 Next >

Show All