forked from OSchip/llvm-project
Finegrainify namespacification
Add capability to represent volatile AliasSet's Propagate this information from loads&stores into the aliassets llvm-svn: 10457
This commit is contained in:
parent
310da97240
commit
0a14060ce2
|
@ -20,8 +20,7 @@
|
|||
#include "llvm/Target/TargetData.h"
|
||||
#include "llvm/Assembly/Writer.h"
|
||||
#include "llvm/Support/InstIterator.h"
|
||||
|
||||
namespace llvm {
|
||||
using namespace llvm;
|
||||
|
||||
/// mergeSetIn - Merge the specified alias set into this alias set...
|
||||
///
|
||||
|
@ -190,16 +189,21 @@ AliasSet &AliasSetTracker::getAliasSetForPointer(Value *Pointer, unsigned Size){
|
|||
}
|
||||
|
||||
void AliasSetTracker::add(LoadInst *LI) {
|
||||
addPointer(LI->getOperand(0),
|
||||
AA.getTargetData().getTypeSize(LI->getType()), AliasSet::Refs);
|
||||
AliasSet &AS =
|
||||
addPointer(LI->getOperand(0),
|
||||
AA.getTargetData().getTypeSize(LI->getType()), AliasSet::Refs);
|
||||
if (LI->isVolatile()) AS.setVolatile();
|
||||
}
|
||||
|
||||
void AliasSetTracker::add(StoreInst *SI) {
|
||||
addPointer(SI->getOperand(1),
|
||||
AA.getTargetData().getTypeSize(SI->getOperand(0)->getType()),
|
||||
AliasSet::Mods);
|
||||
AliasSet &AS =
|
||||
addPointer(SI->getOperand(1),
|
||||
AA.getTargetData().getTypeSize(SI->getOperand(0)->getType()),
|
||||
AliasSet::Mods);
|
||||
if (SI->isVolatile()) AS.setVolatile();
|
||||
}
|
||||
|
||||
|
||||
void AliasSetTracker::add(CallSite CS) {
|
||||
AliasSet *AS = findAliasSetForCallSite(CS);
|
||||
if (!AS) {
|
||||
|
@ -263,6 +267,7 @@ void AliasSet::print(std::ostream &OS) const {
|
|||
case ModRef : OS << "Mod/Ref "; break;
|
||||
default: assert(0 && "Bad value for AccessTy!");
|
||||
}
|
||||
if (isVolatile()) OS << "[volatile] ";
|
||||
if (Forward)
|
||||
OS << " forwarding to " << (void*)Forward;
|
||||
|
||||
|
@ -329,5 +334,3 @@ namespace {
|
|||
RegisterPass<AliasSetPrinter> X("print-alias-sets", "Alias Set Printer",
|
||||
PassInfo::Analysis | PassInfo::Optimization);
|
||||
}
|
||||
|
||||
} // End llvm namespace
|
||||
|
|
Loading…
Reference in New Issue