| Rev |
Log message |
Author |
Age |
Path |
| 3914 |
[CAF] fix bug in copying command-line arguments for gasnet_init
When allocating buffer for command-line arg, it did not allocate the extra
byte for the terminating NULL character. |
dreachem |
398d 14h |
/ |
| 3913 |
support OpenUH build in Linux Mint distro
From Open64 commit log:
Open64 currently does not build from source on Linux Mint 12 due to this
distro using yet another layout for 64-bit libraries and objects.
The following change corrects the issue by adding another case to the
existing check.
Note: If trying to execute a prebuilt OpenUH in Linux Mint, it may require
manully copying crt1.o, crti.o, and crtn.o from /usr/lib/x86_64-linux-gnu to
/usr/lib (and possibly /usr/lib64).
Contributor: David Coakley (AMD) |
dreachem |
398d 19h |
/ |
| 3912 |
[CAF] Fixes DV for allocatable scalar coarrays
This includes a fix for allocatable scalar coarrays ("coscalars"):
The dope vector for allocatable coscalars was not being initialized correctly
after recent change which did away with using the VAR_TMP_IDX for storing PE
bound information. The routine which generates the dope vector wasn't
correctly recognzing the existence of the cobounds in the declaration.
Also, for intrinsic functions which take in a coarray dope vector (e.g.
this_image), it was creating a temp dope vector for the actual argument. This
temp did not contain the cobounds information for coscalars. I modified this
so that it will instead use the original dope vector created for the coscalar.
Also:
When trying to determine the address on a remote image, we add the appropriate
offset only if it falls within the RMA heap. Coarrays that aren't in the heap
(e.g. save coarrays that have not been mapped into static coarray section of
heap) do not need an address adjustment so this check is added. Note,
accessing coarrays currently allocated outside the heap (e.g. save coarrays)
will not work unless using GASNet's everything segment configuration.
Contributor: Deepak |
dreachem |
398d 19h |
/ |
| 3911 |
adds macro __OPENUH__ which indicates version of OpenUH that is used. |
dreachem |
398d 19h |
/ |
| 3910 |
fix for bug783.
In dwarf frame sections, for -fpic -g code, unified 4byte upointer_size
is used to represent the reference to the code in text no matter
-m32 or -m64. So, in handling the relocations in .debug_frame,
we should always use PC-relative relocation instead of absolute one as
we did in .eh_frame.
Code Reivew: Lai Jian-Xin. |
yug |
399d 06h |
/ |
| 3909 |
a new version of the kopencc script.
o. rewritten in perl, original bash script is hard to parse complex arguments.
o. more flexible. No hard-coded opt levels and targets,
user specified opt levels higher priority than the makefile defaults.
o. dump functionality. command-line processed by kopencc now also dumped to
the stderr, this helps programmer debugging the buid issues.
Code Review: Dong Yuan and David Coakley. |
yug |
402d 06h |
/ |
| 3908 |
Fixed the x86-ppc cross compiler's gcc preprocessor problem and adjusted it's install method. Reviewed by David Coakley |
luohuan |
405d 08h |
/ |
| 3907 |
Changes include: support for 256-bit fma, limiting load exec on x86 cmp
insns to a single use for the consuming load, updates for non temporal
stores, adding a temp result to a binary and expansion pattern and
cleanup in CG_sched. CR: Jian-Xin. |
mberg |
405d 18h |
/ |
| 3906 |
fix for bug952.
In the expansion of OPR_STID for X8664 -m32 target,
when the kid is 64bit result with paired TN but the stid_type
is 4byte size or less, we delete the useless higher 32bit tn
by unpair the result. This will help pass the pair check in the
following expansion routines.
Code Review: Lai Jian-Xin. |
yug |
406d 05h |
/ |
| 3905 |
add bug952 cases |
yug |
406d 06h |
/ |
| 3904 |
Cleanup of r3901.
To fix library dependency problems, the rule make_libdeps for
X8664 is now the same as NVISA.
CR: Mike Murphy |
dgilmore |
408d 15h |
/ |
| 3903 |
The hash function for VN_BINARY_EXPR will first canonicalize the
expression. as the following code in file opt_vn_expr_taxonomy.h:509
size_t hash()
{
Is_True(!has_bottom_opnd() && !has_top_opnd(),
("Cannot hash() with Top() or Bottom() operand!"));
_canonicalize();
return _opc + (_vn[0].ordinal() << 4) + (_vn[1].ordinal() << 8);
}
Following is the canonicalize code in opt_vn_expr.cxx:754
void
VN_BINARY_EXPR::_canonicalize()
{
// Puts operands in increasing order of VN if commutative,
// and change opcode for inequalities such that we always
// use LT or LE and never GT or GE.
//
OPCODE opc1 = OPCODE_commutative_op(_opc);
if (opc1 != OPCODE_UNKNOWN && _vn[0] > _vn[1])
{
Switch_Vn_Opnd(_vn[0], _vn[1]);
_opc = opc1;
}
else
{
const OPERATOR opr = OPCODE_operator(_opc);
if (opr == OPR_GE)
{
Switch_Vn_Opnd(_vn[0], _vn[1]);
_opc = OPCODE_make_op(OPR_LE, OPCODE_rtype(_opc), OPCODE_desc(_opc));
}
else if (opr == OPR_GT)
{
Switch_Vn_Opnd(_vn[0], _vn[1]);
_opc = OPCODE_make_op(OPR_LT, OPCODE_rtype(_opc), OPCODE_desc(_opc));
}
}
} // VN_BINARY_EXPR::_canonicalize
These code would like to do one of the 2 things as in the comments
a. put operands in increasing order of VN if commutative
b. use LT or LE and never GT or GE
For the expression v0 < v1 where Value_number(v0) = 3 ,
Value_number(v2)= 1 . we try to get it’s hash number. as it satisfy
opc1 != OPCODE_UNKNOWN && _vn [0] > _vn[1], it will canonicalize to v1 > v0
The second time we try to get it’s hash number, this
expression satisfy rule a, it will jump to rule b, use LT or LE . So
v1 > v0 will canonicalize to v0 < v1 again. We got a different hash
number from the first time.
The hash number is not unique for this expression.
Actually, the relative operators are not consider to be commutatived.
Only binary operations that the operands can be exchange and the
operator keep the same are commutatived operations, just like plus,
multiple, etc.
Do not apply rule a for relative operator(LT, LE, GT, GE) should be a solution.
Approved by: Lai Jianxin |
ycwu |
410d 01h |
/ |
| 3902 |
back out commit r3901, it breaks with old versions of make. |
dgilmore |
413d 08h |
/ |
| 3901 |
To fix library dependency problems, the
rule make_libdeps for X8664 is now the same as NVISA.
CR: Sun Chan. |
dgilmore |
414d 13h |
/ |
| 3900 |
This change fixes a bug in DSP_SCH::Compute_Insn_Size().
Some operations have an opcode variant which assume that rax/eax is an
operand/result. Thus when this register is being targeted no Mod R/M
byte is needed, thus the instruction is 1 byte shorter.
CR: Sun Chan |
dgilmore |
414d 13h |
/ |
| 3899 |
This patch fixes initializations of several MEM_POOLs in
ebo_special.cxx, which eliminates many memory pool initialization
trace warnings when the compiler is built in debug mode.
CR: Sun Chan |
dgilmore |
414d 13h |
/ |
| 3898 |
This is a fix for a bug found by adding new fields to the
OP structure which caused a segmentation fault during the
code generation phase when building SPEC dealII.
The Base() member function of a POINTS_TO structure only
returns a valid ST pointer when the base kind is fixed (for
debugging purposes, during alias information construction
pointers to different structures are placed in _base when
the base kind is dynamic).
For consistency sake, in this source file I changed the
other check to determine whether the base kind is fixed to
use the Based_is_fixed() member function.
CR: Jian-Xin Lai. |
dgilmore |
415d 15h |
/ |
| 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 |
417d 13h |
/ |
| 3896 |
Remove unused code for GCC 4.0-based C/C++ front end.
It has been superseded by the GCC 4.2-based front end in osprey-gcc-4.2.0.
Approved by: Sun Chan |
dcoakley |
417d 15h |
/ |
| 3895 |
[CAF] changing ENABLE_TRACES to ENABLE_LIBCAF_TRACES |
dreachem |
421d 15h |
/ |