| Rev |
Log message |
Author |
Age |
Path |
| 4035 |
Configure-based build system for PPC native compiler. Reviewed by David Coakley |
luohuan |
228d 21h |
/trunk/osprey-gcc-4.2.0/ |
| 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 |
279d 04h |
/trunk/osprey-gcc-4.2.0/ |
| 3925 |
Fix bug 779: build in source directory does not work.
In the osprey-gcc-4.2.0 build always use a known subdirectory for
$(host_subdir) instead of making the choice depending on where configure
was run, so that we always know where to find the build artifacts.
Also in the osprey-gcc 4.2.0 build use a path relative to $(build_objdir)
to find libgspin42.a.
In the build of the cygnus/ld subdirectory, use the "new-ld" target
instead of "all". The "all" target causes unwanted modifications to
checked-in files when the build is being done in the source directory.
For Open64, we only need the new-ld (ipa_link) executable.
Approved by: Sun Chan and Mike Murphy |
dcoakley |
383d 21h |
/trunk/osprey-gcc-4.2.0/ |
| 3908 |
Fixed the x86-ppc cross compiler's gcc preprocessor problem and adjusted it's install method. Reviewed by David Coakley |
luohuan |
407d 23h |
/trunk/osprey-gcc-4.2.0/ |
| 3897 |
Fix osprey-gcc-4.2.0 build failure on Linux Mint 12 64-bit.
This distro puts the 64-bit C runtime object files in
/usr/lib/x86_64-linux-gnu instead of /usr/lib or /usr/lib64.
Approved by: Sun Chan |
dcoakley |
420d 03h |
/trunk/osprey-gcc-4.2.0/ |
| 3850 |
fix bug929.
Don't miss gspin type align field update after the layout is re-calulated by gcc tree.
Code Review: Gautum Chakrabarti |
yug |
529d 19h |
/trunk/osprey-gcc-4.2.0/ |
| 3828 |
This patch adds x86-ppc32 cross compile support for open64. It has a GNU 4.0 FE and uses autoconf and a configure script in its build process. Currently it only supports C. See doc/HOWTO-INSTALL-OPEN64-PPC-CROSS for the new build instructions. Reviewed by: Rayson Ho and David Coakley. |
luohuan |
543d 14h |
/trunk/osprey-gcc-4.2.0/ |
| 3747 |
Fix bug #876.
This patch is related to bug 827 and rev 3739. For a simple case:
extern void undef();
static void foo() {
undef(); // <-- A
}
static void bar() {
int n;
switch(n) {
foo(); // <-- B
}
}
int global() {
bar();
}
The callsite B is dead code and eliminated by the GCC FE at O2. With the
patch to bug 827, function foo is still marked as referenced. Then
function foo() is emitted to the BE and generate the call to "undef".
There will be an error in the final linking phase: undefined reference
to `undef()'. In the previous patch rev 3739, when we generate the CALL node to a
function, both the name and decl of the function are marked as
referenced. That causes this regression. Since the logic to detect if a
static function is used but not defined only check the name of the
symbol, the new patch only set the name of the function referenced.
Code Review by Sun Chan. |
laijx |
606d 20h |
/trunk/osprey-gcc-4.2.0/ |
| 3739 |
Fix bug #827.
he error message should be reported at toplev.c, line 884:
874 if (TREE_CODE (decl) == FUNCTION_DECL
875 && DECL_INITIAL (decl) == 0
876 && DECL_EXTERNAL (decl)
877 && ! DECL_ARTIFICIAL (decl)
878 && ! TREE_NO_WARNING (decl)
879 && ! TREE_PUBLIC (decl)
880 && (warn_unused_function
881 || TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME
(decl))))
882 {
883 if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
884 pedwarn ("%q+F used but never defined", decl);
885 else
886 warning (0, "%q+F declared %<static%> but never
defined", decl);
887 /* This symbol is effectively an "extern" declaration now.
*/
888 TREE_PUBLIC (decl) = 1;
889 assemble_external (decl);
890 }
Because the TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) is
not set for the callee in this case, the compiler doesn't report any
error on this case. The patch is to set this flag when handle the
CALL_EXPR when the tree is translated into spin.
Code review by Gautam. |
laijx |
613d 22h |
/trunk/osprey-gcc-4.2.0/ |
| 3737 |
Fix bug847.
1. Put global asm code at where it defines
2. When there is global asm in source file, do not emit .org
Code Review: Jian-Xin. |
zhuqing |
618d 20h |
/trunk/osprey-gcc-4.2.0/ |
| 3735 |
A new implementation for the open64's support for DSP Zero-Delay-Loop(ZDL) feature. This ZDL contribution is a co-operational approach of global scalar optimizer WOPT and the Code Generation component CG. The common ZDL features, i.e, the loop counting mechanism hidden and bottom loop condition abstracted are implemented in WOPT with minimized changes while keeping the maximum optimizing result. A pseudo branch op method is introduced to expand ZDL WHIRL operator and delay the ZDL hardware instruction generation to the very last phase of CG loop optimization. This lazy implementation helps keeping the compatibility with other CG loop optimizations to produce the most optimal code. With the new ZDL implementation, open64 provides the equal expressibility to gcc's doloop_begin, doloop_end and decrement_and_branch_until_zero patterns.
Pragma:
#pragma zdl off
Flags:
WOPT_Enable_ZDL
OPT_Lower_ZDL
WOPT_Enable_ZDL_Early_Exit
WOPT_ZDL_Innermost_Only
CG_zdl_enabled_level[SL]
retargeting macro:
ZDL_TARG
retargeting interface:
INT CG_LOOP_ZDL_Gen(LOOP_DESCR*); //cg_loop.cxx
void Emit_Phase_Validity_Check(void); //cgemit.cxx
void Target_Specific_ZDLBR_Expansion(TN* target_tn); //whirl2ops.cxx
provided options
-WOPT:zdl
-WOPT:zdl_skip_a
-WOPT:zdl_skip_b
-WOPT:zdl_skip_e
-OPT:lower_zdl
-CG:zdl_enabled_level[SL]
Code Review: Fred Chow, Lai Jianxin and Sun Chan. |
yug |
624d 02h |
/trunk/osprey-gcc-4.2.0/ |
| 3722 |
Implement a "copy-in/copy-out" optimization for a member of a
structure whose accesses exhibit poor cache locality. The idea is to
identify a section of code where this optimization is beneficial and
replace the occurrences of this structure member by a local variable.
Care is taken to save ("copy-in") and restore ("copy-out") the
correct value of the structure member immediately before and after
the code section.
For example, in the following section of code:
loop
loop
... struct.member ...
loopend
loopend
if it can be determined that the accesses to "struct.member" will result
in a lot of cache misses, the compiler may transform the above to:
t = struct.member ("copy-in") (if necessary)
loop
loop
... t ...
loopend
loopend
struct.member = t ("copy-out") (if necessary)
Approved by: Sun Chan |
dcoakley |
644d 22h |
/trunk/osprey-gcc-4.2.0/ |
| 3645 |
Removing fast STL set/map implementation. |
dibyendu |
713d 01h |
/trunk/osprey-gcc-4.2.0/ |
| 3642 |
Implementation of fast STL set/map which allows iterators to be speedier
when iterators are hot. The underlying Red-Black Tree structure has been
changed for this purpose. Currently the implementation is available
under the -D__OPEN64_FAST_SET. |
dibyendu |
717d 22h |
/trunk/osprey-gcc-4.2.0/ |
| 3637 |
Failing testcase when compiled with 'openCC -Winline'
#include <xmmintrin.h>
typedef __m64 m64;
m64 add(const m64 &a, const m64 &b) {
return _mm_adds_pu16 (a, b);
}
int main()
{
m64 a,b;
add(a,b);
return 0;
}
Problem/Fix Description
When compiled with -Winline, the above testcase gives the message
...lib/gcc/x86_64-redhat-linux/4.2.0/include/mmintrin.h: In function 'int __vector__ add(const int __vector__&, const int __vector__&)'
.../lib/gcc/x86_64-redhat-linux/4.2.0/include/mmintrin.h:361: sorry, unimplemented: inlining failed in call to 'int __vector__ _mm_adds_pu16(int __vector__, int __vector__)': function not inlinable
<testcase>.cpp:5: sorry, unimplemented: called from here
gcc does not give and error message.
The problem is in file osprey-gcc-4.2.0/gcc/tree-inline.c, function
expand_call_inline. The fix is to emit no (error or warning) message if the
function marked for inlining is declared in a system header file.
C.R. by Jian-Xin Lai and C. Bergstrom. |
pallavimathew |
723d 11h |
/trunk/osprey-gcc-4.2.0/ |
| 3576 |
SL changes merge r3231:3575. CR by Sun Chan, David Coakley and Lai Jianxian |
yug |
757d 18h |
/trunk/osprey-gcc-4.2.0/ |
| 3416 |
Fix to bug #594
approved by : Gautam |
syang |
904d 11h |
/trunk/osprey-gcc-4.2.0/ |
| 3342 |
Fixed g++ builtin regression tests fails. (Bug 627)
Approved by Lai JianXin. |
chenr |
985d 03h |
/trunk/osprey-gcc-4.2.0/ |
| 3327 |
Fix for bug 582.
Approved by Lai JianXin. |
chenr |
999d 03h |
/trunk/osprey-gcc-4.2.0/ |
| 3314 |
Merge changes r2717-3263 from open64-booster branch to trunk.
These changes include work done for AMD's x86 Open64 4.2.4 release. |
dcoakley |
1009d 06h |
/trunk/osprey-gcc-4.2.0/ |