summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-10-04 02:22:52 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-10-04 02:22:52 +0000
commit161935520d5a9cd1fcaddee39bb8438bcfec5552 (patch)
tree63b25b0718d66c622eb27efa8213105ef4e984fc /llvm/include
parent65b9056f3dbba45ffd16d780b058a3d044115a59 (diff)
downloadbcm5719-llvm-161935520d5a9cd1fcaddee39bb8438bcfec5552.tar.gz
bcm5719-llvm-161935520d5a9cd1fcaddee39bb8438bcfec5552.zip
[WinEH] Permit branch folding in the face of funclets
Track which basic blocks belong to which funclets. Permit branch folding to fire but only if it can prove that doing so will not cause code in one funclet to be reused in another. llvm-svn: 249257
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/CodeGen/Analysis.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/include/llvm/CodeGen/Analysis.h b/llvm/include/llvm/CodeGen/Analysis.h
index 51d423ef968..38e64ad3be2 100644
--- a/llvm/include/llvm/CodeGen/Analysis.h
+++ b/llvm/include/llvm/CodeGen/Analysis.h
@@ -15,6 +15,7 @@
#define LLVM_CODEGEN_ANALYSIS_H
#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/IR/CallSite.h"
@@ -23,6 +24,8 @@
namespace llvm {
class GlobalValue;
+class MachineBasicBlock;
+class MachineFunction;
class TargetLoweringBase;
class TargetLowering;
class TargetMachine;
@@ -115,6 +118,9 @@ bool returnTypeIsEligibleForTailCall(const Function *F,
// or we are in LTO.
bool canBeOmittedFromSymbolTable(const GlobalValue *GV);
+DenseMap<const MachineBasicBlock *, int>
+getFuncletMembership(const MachineFunction &MF);
+
} // End llvm namespace
#endif
OpenPOWER on IntegriCloud