||merge open-sl branch change(r2110:2693) to trunk
||enhance the support tls on IA-64.
with this patch, programmer can specify the tls model for individual symbol.
||Merge all changes through r2321 from open64-booster branch to trunk.
These changes include work done for AMD's x86 Open64 4.2.2 release.
||-dd -mmmx, -msse,-msse2 to the preprocess phase. fixed bug 514
2. fixed some calling convention problem keep consist with gcc, like following (bug 515)
parameters passing and return value in gcc
8 bytes vector:
-mmmx: use mm0~mm2 for parameters, mm0 for return value
-mno-mmx: use memory for parameters and return value
16 bytes vector:
-msse: use xmm0 ~ xmm2 for parameters, xmm0 for return value
-mno-sse: use memory for parameters and return value
FP( float, double):
-msseregparm: use xmm0~xmm2 for parameters, xmm0 for return value
-else: use memory for parameters and return value
all the above use xmm0 ~ xmm7 for parameters, xmm0 for return value
3. fixed bug 516
4. fixed bug 517, which emit 64bit assembly code in 32bit target
5. change the build in operation __builtin_ia32_vec_ext_v2si according to gcc's result.
buildin operation __builtin_ia32_vec_ext_v2si ( i,0) and buildin operation __builtin_ia32_vec_ext_v2si ( i,1) get different result
in gcc but open64 will ignore the second parameter.
-This line, and those below, will be ignored--
||merge open-sl branch change(r2035:r2110) to trunk
||Merge branches/merge08 into trunk.
Now the trunk is the latest revision for Open64 4.2 release.
The trunk now can generate code for 5 platforms:
- IA-64 (Itanium)
- CUDA (from NVIDIA)
- SL (an embedded DSP architecture, from SimpLight)
- MIPS prototype (from ICT based on input from PathScale and SimpLight
The trunk is merged with PathScale 3.2 release with a lot of enhancement and
bug fix from Tsinghua Univ., NVIDIA, SimpLight, HP and ICT.
||add the support for intrinsic PMOVMSKB128, since it's operand is xmm(float), different from existed PMOVMSKB which need mmx operand,
so we add a new top code for it.
Reviewd by Fred.
||disable or enable GNU FE exceptions when -fexception or -fno-exception is set
||1. add some comment for the OPTIONS
2. revert to turn on the type alias, the testing result shows that if we turn off the type alias, many program failed. it's totally unreasonable,
we will check that offline, before that, turn on that again.
||ignore the three gcc related flag
||Pass flags "-fno-exceptions" and "-fhandle-exceptions" to pre-processor.
||add gcc compatible options
||Ignore the gcc related option -femit-class-debug-always and -ftree-vrp
||Replace all files in trunk with the merge branch.
Now the files in trunk should be the same as in the merge branch
||When deal with pre-allocated registers, LRA will check all the GTNs referenced in the BB. If the ref of the GTN is not exposed to the beginning of the BB, there's no need to save the GTN value to a local TN at the beginning of the BB. This is a performance bug, also will it introduce wrong insertion of copy op of GTN at the beginning of an entry-BB.
This check in also includes two patches to r1303 and r1305
||Work around to support the -minline-all-stringops. Just ignore them for now, should be refined later.
||Propagate '-show' and '-keep' to ipa_link, it's useful for debugging the
This option isn't even documented in gcc's documentation, but
it is used in Google. The solution - ignore this option.
Code Review: none
||Fix the bug #381, reject '-m32' and '-m64' option on IA64.