OSDN Git Service

Fix a post-RA scheduling dependency bug.
authorDan Gohman <gohman@apple.com>
Fri, 30 Jan 2009 02:49:14 +0000 (02:49 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 30 Jan 2009 02:49:14 +0000 (02:49 +0000)
commit3311a1f8f0d8a2c6d940802bbb95eba0b801a615
treebdd2e29d59721787b1d6dd48c8dfca58ef4b49ce
parent9c8148ac93835b7d53c81c554cde2e6da3730771
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63370 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/AliasAnalysis.h
lib/Analysis/BasicAliasAnalysis.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp