Merge
This commit is contained in:
commit
31d647daea
@ -36,6 +36,7 @@ public class Database {
|
|||||||
private FileList outerFiles;
|
private FileList outerFiles;
|
||||||
private FileList indivIncludes;
|
private FileList indivIncludes;
|
||||||
private FileList grandInclude; // the results for the grand include file
|
private FileList grandInclude; // the results for the grand include file
|
||||||
|
private HashMap<String,String> platformDepFiles;
|
||||||
private long threshold;
|
private long threshold;
|
||||||
private int nOuterFiles;
|
private int nOuterFiles;
|
||||||
private int nPrecompiledFiles;
|
private int nPrecompiledFiles;
|
||||||
@ -57,6 +58,7 @@ public class Database {
|
|||||||
outerFiles = new FileList("outerFiles", plat);
|
outerFiles = new FileList("outerFiles", plat);
|
||||||
indivIncludes = new FileList("IndivIncludes", plat);
|
indivIncludes = new FileList("IndivIncludes", plat);
|
||||||
grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat);
|
grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat);
|
||||||
|
platformDepFiles = new HashMap<String,String>();
|
||||||
|
|
||||||
threshold = t;
|
threshold = t;
|
||||||
nOuterFiles = 0;
|
nOuterFiles = 0;
|
||||||
@ -209,6 +211,10 @@ public class Database {
|
|||||||
FileList p = allFiles.listForFile(includer);
|
FileList p = allFiles.listForFile(includer);
|
||||||
p.setPlatformDependentInclude(pdName.dirPreStemSuff());
|
p.setPlatformDependentInclude(pdName.dirPreStemSuff());
|
||||||
|
|
||||||
|
// Record the implicit include of this file so that the
|
||||||
|
// dependencies for precompiled headers can mention it.
|
||||||
|
platformDepFiles.put(newIncluder, includer);
|
||||||
|
|
||||||
// Add an implicit dependency on platform
|
// Add an implicit dependency on platform
|
||||||
// specific file for the generic file
|
// specific file for the generic file
|
||||||
|
|
||||||
@ -408,6 +414,12 @@ public class Database {
|
|||||||
for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) {
|
for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) {
|
||||||
FileList list = (FileList) iter.next();
|
FileList list = (FileList) iter.next();
|
||||||
gd.println(list.getName() + " \\");
|
gd.println(list.getName() + " \\");
|
||||||
|
String platformDep = platformDepFiles.get(list.getName());
|
||||||
|
if (platformDep != null) {
|
||||||
|
// make sure changes to the platform dependent file will
|
||||||
|
// cause regeneration of the pch file.
|
||||||
|
gd.println(platformDep + " \\");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
gd.println();
|
gd.println();
|
||||||
gd.println();
|
gd.println();
|
||||||
|
@ -45,10 +45,13 @@ Node *SubNode::Identity( PhaseTransform *phase ) {
|
|||||||
return in(2)->in(2);
|
return in(2)->in(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert "(X+Y) - Y" into X
|
// Convert "(X+Y) - Y" into X and "(X+Y) - X" into Y
|
||||||
if( in(1)->Opcode() == Op_AddI ) {
|
if( in(1)->Opcode() == Op_AddI ) {
|
||||||
if( phase->eqv(in(1)->in(2),in(2)) )
|
if( phase->eqv(in(1)->in(2),in(2)) )
|
||||||
return in(1)->in(1);
|
return in(1)->in(1);
|
||||||
|
if (phase->eqv(in(1)->in(1),in(2)))
|
||||||
|
return in(1)->in(2);
|
||||||
|
|
||||||
// Also catch: "(X + Opaque2(Y)) - Y". In this case, 'Y' is a loop-varying
|
// Also catch: "(X + Opaque2(Y)) - Y". In this case, 'Y' is a loop-varying
|
||||||
// trip counter and X is likely to be loop-invariant (that's how O2 Nodes
|
// trip counter and X is likely to be loop-invariant (that's how O2 Nodes
|
||||||
// are originally used, although the optimizer sometimes jiggers things).
|
// are originally used, although the optimizer sometimes jiggers things).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user