summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-01-30 02:49:14 +0000
committerDan Gohman <gohman@apple.com>2009-01-30 02:49:14 +0000
commit1ee0d41ef82b1030f592a22224c7188c720578db (patch)
treead5a9847921270c012f164841512de70e1d56482 /llvm/lib/Analysis
parent091f92f568d01309bc958941493990ce434def45 (diff)
downloadbcm5719-llvm-1ee0d41ef82b1030f592a22224c7188c720578db.tar.gz
bcm5719-llvm-1ee0d41ef82b1030f592a22224c7188c720578db.zip
Fix a post-RA scheduling dependency bug.
If a MachineInstr doesn't have a memoperand but has an opcode that is known to load or store, assume its memory reference may alias *anything*, including stack slots which the compiler completely controls. To partially compensate for this, teach the ScheduleDAG building code to do basic getUnderlyingValue analysis. This greatly reduces the number of instructions that require restrictive dependencies. This code will need to be revisited when we start doing real alias analysis, but it should suffice for now. llvm-svn: 63370
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r--llvm/lib/Analysis/BasicAliasAnalysis.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index 82514400b82..1002868e84c 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -80,7 +80,7 @@ static bool isNoAliasCall(const Value *V) {
/// ByVal and NoAlias Arguments
/// NoAlias returns
///
-static bool isIdentifiedObject(const Value *V) {
+bool llvm::isIdentifiedObject(const Value *V) {
if (isa<GlobalValue>(V) || isa<AllocationInst>(V) || isNoAliasCall(V))
return true;
if (const Argument *A = dyn_cast<Argument>(V))
OpenPOWER on IntegriCloud