aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Support/CallSite.h
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2010-04-15 10:49:53 +0000
committerGabor Greif <ggreif@gmail.com>2010-04-15 10:49:53 +0000
commitd46fdb45387f46beeadc04472b3a66ad1da3aca1 (patch)
treeb96c81333b16aa40af609dd54fa4ea51cfd1f743 /include/llvm/Support/CallSite.h
parentf22ee1aa7f6fb51f3123055f81fdc0c21630b5eb (diff)
downloadexternal_llvm-d46fdb45387f46beeadc04472b3a66ad1da3aca1.zip
external_llvm-d46fdb45387f46beeadc04472b3a66ad1da3aca1.tar.gz
external_llvm-d46fdb45387f46beeadc04472b3a66ad1da3aca1.tar.bz2
rotate CallInst operands, i.e. move callee to the back
of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/CallSite.h')
-rw-r--r--include/llvm/Support/CallSite.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/llvm/Support/CallSite.h b/include/llvm/Support/CallSite.h
index 0650b61..7667ba0 100644
--- a/include/llvm/Support/CallSite.h
+++ b/include/llvm/Support/CallSite.h
@@ -255,27 +255,21 @@ public:
private:
/// Returns the operand number of the first argument
unsigned getArgumentOffset() const {
- if (isCall())
- return 1; // Skip Function (ATM)
- else
return 0; // Args are at the front
}
unsigned getArgumentEndOffset() const {
if (isCall())
- return 0; // Unchanged (ATM)
+ return 1; // Skip Function
else
return 3; // Skip BB, BB, Function
}
IterTy getCallee() const {
- // FIXME: this is slow, since we do not have the fast versions
- // of the op_*() functions here. See CallSite::getCallee.
- //
- if (isCall())
- return getInstruction()->op_begin(); // Unchanged (ATM)
- else
- return getInstruction()->op_end() - 3; // Skip BB, BB, Function
+ // FIXME: this is slow, since we do not have the fast versions
+ // of the op_*() functions here. See CallSite::getCallee.
+ //
+ return arg_end();
}
};