aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2013-09-28 00:22:27 +0000
committerManman Ren <manman.ren@gmail.com>2013-09-28 00:22:27 +0000
commit804f034bd18789e9bbf4c70c10189dd6dbf04128 (patch)
tree934646950d694157e4fc94e5fd7bb19a8e231697 /include/llvm
parent6ff59a16a05d43fdda587ce600b5b42a63cf3d33 (diff)
downloadexternal_llvm-804f034bd18789e9bbf4c70c10189dd6dbf04128.zip
external_llvm-804f034bd18789e9bbf4c70c10189dd6dbf04128.tar.gz
external_llvm-804f034bd18789e9bbf4c70c10189dd6dbf04128.tar.bz2
AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format.
We treat TBAA tags as struct-path aware TBAA format when the first operand is a MDNode and the tag has 3 or more operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191593 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/AutoUpgrade.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/llvm/AutoUpgrade.h b/include/llvm/AutoUpgrade.h
index ca3446e..8df87fa 100644
--- a/include/llvm/AutoUpgrade.h
+++ b/include/llvm/AutoUpgrade.h
@@ -19,6 +19,7 @@ namespace llvm {
class GlobalVariable;
class Function;
class CallInst;
+ class Instruction;
/// This is a more granular function that simply checks an intrinsic function
/// for upgrading, and returns true if it requires upgrading. It may return
@@ -39,6 +40,10 @@ namespace llvm {
/// This checks for global variables which should be upgraded. It returns true
/// if it requires upgrading.
bool UpgradeGlobalVariable(GlobalVariable *GV);
+
+ /// If the TBAA tag for the given instruction uses the scalar TBAA format,
+ /// we upgrade it to the struct-path aware TBAA format.
+ void UpgradeInstWithTBAATag(Instruction *I);
} // End llvm namespace
#endif