Subversion Repositories Open64

[/] - Rev 3914

Rev

Go to most recent revision

Filtering Options

Clear current filter

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 /

1 2 Next >

Show All