| Rev |
Log message |
Author |
Age |
Path |
| 3350 |
|
|
|
/branches/ |
| 3349 |
|
|
|
/branches/ |
| 3344 |
Merge trunk changes r3228-3343 to open64-booster branch. |
dcoakley |
978d 07h |
/branches/ |
| 3341 |
when updating pts to set from the diff set (during solve), check if the node/offset that is being updated is ptr aligned |
rajiv |
982d 05h |
/branches/ |
| 3339 |
|
|
|
/branches/ |
| 3331 |
|
|
|
/branches/ |
| 3329 |
|
|
|
/branches/ |
| 3328 |
|
|
|
/branches/ |
| 3325 |
for post IPA be, fixing section block ST's cg node.
The function is similar with ConstraintGraph::mapAliasedSyms, except
it avoids the problem of collapsing cg nodes.
Fix a bug in promotelocals, need update st be global |
shihui |
996d 23h |
/branches/ |
| 3324 |
|
leihuang |
998d 23h |
/branches/ |
| 3319 |
Fix constraints graph node missing problem When IPA inline promote callee's
local static to global static.
1.In IPO_CLIONE: map local static and promoted global in ConstraintGraph ::promoteStIdxMap
2. In IPO process callee, invoke new method ConstraintGraph::promoteLocals
1. map st info to global cg with global st index.
2. iterate all orig local static's cg node in callee's local CG. Extract cg node from local cg and add into global cg.
3. erase orig cg_st_idx from local cg.
int b;
int i;
int* bar(int* p) {return p++;}
int foo(int a)
{
static int min[10] ;
static int *p;
p = bar(min);
if(a < min[i])
*p = a;
return min[i];
}
int main()
{
b = foo(b);
return b;
} |
shihui |
1002d 02h |
/branches/ |
| 3317 |
1. fix WN simp, when new tree generated copy alias cg node
2. Add pu name dump for alias reprot analyze |
shihui |
1003d 21h |
/branches/ |
| 3310 |
adding operator new(int) to cse table |
rajiv |
1010d 02h |
/branches/ |
| 3306 |
Add include/gnu to list of directories to look for headers |
rajiv |
1018d 14h |
/branches/ |
| 3305 |
- When adding edges between CGnodes, we may end up creating new offsets. If
the number of offsets excceds the threhsold, we end collaping the StInfo.
This forces the edges that were added to be marked deleted or renamed.
These new edges were being added to a hash set. If the edges were
deleted/renamed, the hash set is no longer consistent. So instead of adding
the new edges to an edge set, we add them to an edge list. The worklist
is then populated with this edge list. During the core solver, the edge
popped from the worklist that is marked deleted is then removed (CXX_DELETE). |
rajiv |
1021d 02h |
/branches/ |
| 3304 |
Revert the change from r3270 which builds libacml_mv.so for now.
After merge from main trunk, we had an inconsistency. |
loreena |
1022d 09h |
/branches/ |
| 3302 |
Merge from main trunk through revision 3301. |
loreena |
1022d 23h |
/branches/ |
| 3300 |
solve trace in IPA is too big, provide a light weight trace for each steps. |
shihui |
1023d 23h |
/branches/ |
| 3299 |
Fix tonto run time output differnce bug.
Cause: formal ref parameter is treated as paramter pass by value. points to info is not correct.
Solution: In ipa, when connect alias info, if formal is fomral_ref paramter, add an LOAD edge instead of copy edge between actual and formal.
Attatch the small case
LDID <a1, 0> in swap_real, points not points to array1 before fix.
program HelloWorld
INTERFACE
SUBROUTINE swap_real(a1, a2)
REAL :: a1(:), a2(:)
END SUBROUTINE swap_real
END INTERFACE
real :: array1(1:100), array2(1:100)
integer :: i
do i = 1, 100
array1(i) = i
array2(i) = 100-i
end do
call swap_real(array1, array2)
end program HelloWorld
subroutine swap_real(a1, a2)
implicit none
! Input/Output
real, intent(inout) :: a1(:), a2(:)
! Locals
integer :: lb(1), ub(1) ! Lower and Upper bounds
integer :: i
real :: a
! Get bounds
lb = lbound(a1)
ub = ubound(a1)
! Swap
do i = lb(1), ub(1)
a = a1(i)
a1(i) = a2(i)
a2(i) = a
end do
end subroutine swap_real |
shihui |
1023d 23h |
/branches/ |
| 3297 |
add -Wb,-tt24:0x400, dump for alias tag info in SSA. |
shihui |
1029d 01h |
/branches/ |