Author: shihui
Date: 2011-05-16 01:33:15 -0400 (Mon, 16 May 2011)
New Revision: 3605
Modified:
trunk/osprey/be/com/nystrom_alias_analyzer.cxx
trunk/osprey/common/com/config_opt.cxx
trunk/osprey/common/com/config_opt.h
Log:
Nystrom alias triage support.
The basic idea is binary search to force part alias tags aliased other tags.
The target is find the first incorrect alias tag pair.
Code review by Sun Chan
Modified: trunk/osprey/be/com/nystrom_alias_analyzer.cxx
===================================================================
--- trunk/osprey/be/com/nystrom_alias_analyzer.cxx 2011-05-14 23:49:39 UTC
(rev 3604)
+++ trunk/osprey/be/com/nystrom_alias_analyzer.cxx 2011-05-16 05:33:15 UTC
(rev 3605)
@@ -28,6 +28,7 @@
#include "be_ipa_util.h"
#include "ipa_be_summary.h"
#include "ipa_be_read.h"
+#include "config_opt.h"
extern BOOL Write_ALIAS_CGNODE_Map;
@@ -142,6 +143,13 @@
tag1 = tmp;
}
+ // triage, check if this pair of alias tag is force aliased.
+ if(tag1 < AA_force_tag_alias_before_dim1 ||
+ (tag1 == AA_force_tag_alias_before_dim1 &&
+ tag2 <= AA_force_tag_alias_before_dim2)) {
+ return POSSIBLY_ALIASED;
+ }
+
bool result;
if (checkQueryFile((UINT32)Current_PU_Count(),tag1,tag2,result))
return result ? POSSIBLY_ALIASED : NOT_ALIASED;
Modified: trunk/osprey/common/com/config_opt.cxx
===================================================================
--- trunk/osprey/common/com/config_opt.cxx 2011-05-14 23:49:39 UTC (rev
3604)
+++ trunk/osprey/common/com/config_opt.cxx 2011-05-16 05:33:15 UTC (rev
3605)
@@ -335,6 +335,16 @@
BOOL OPT_Enable_WHIRL_SSA = FALSE; // SSA on WHIRL, disabled by default
BOOL OPT_Enable_BUILD_WHIRL_SSA = FALSE; // SSA on WHIRL, disabled by default
+// alias analyzer triage value
+// all alias tag value less than AA_force_tag_alias_before_dim1 is
+// aliased with all other alias tags.
+// all alias tag value less than AA_force_tag_alias_before_dim2 is
+// aliased with tag[AA_force_tag_alias_before_dim1-1]
+//
+// triage is find the first error alias tag pair.
+UINT32 AA_force_tag_alias_before_dim1 = 0;
+UINT32 AA_force_tag_alias_before_dim2 = UINT32_MAX;
+
/***** Obsolete options *****/
static BOOL Fprop_Limit_Set = FALSE;
@@ -889,6 +899,14 @@
0, 0, 0, &OPT_Enable_BUILD_WHIRL_SSA, NULL,
"Enable building WHIRL SSA directly on WHIRL" },
+ { OVK_UINT32, OV_INTERNAL, TRUE, "aa_force_alias_dim1", "",
+ 0, 1, UINT32_MAX, &AA_force_tag_alias_before_dim1, NULL,
+ "Triage option for alias analyzer" },
+
+ { OVK_UINT32, OV_INTERNAL, TRUE, "aa_force_alias_dim2", "",
+ 0, 0, UINT32_MAX, &AA_force_tag_alias_before_dim2, NULL,
+ "Triage option for alias analyzer" },
+
/* Obsolete options: */
{ OVK_OBSOLETE, OV_INTERNAL, FALSE, "global_limit", NULL,
Modified: trunk/osprey/common/com/config_opt.h
===================================================================
--- trunk/osprey/common/com/config_opt.h 2011-05-14 23:49:39 UTC (rev
3604)
+++ trunk/osprey/common/com/config_opt.h 2011-05-16 05:33:15 UTC (rev
3605)
@@ -210,6 +210,9 @@
extern BOOL OPT_Enable_WHIRL_SSA; // enable SSA on WHIRL
extern BOOL OPT_Enable_BUILD_WHIRL_SSA; // enable build WSSA driect from WHIRL
+extern UINT32 AA_force_tag_alias_before_dim1;
+extern UINT32 AA_force_tag_alias_before_dim2;
+
#endif
#ifdef __cplusplus
}
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Open64-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel