diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2015-10-04 02:22:52 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2015-10-04 02:22:52 +0000 |
| commit | 161935520d5a9cd1fcaddee39bb8438bcfec5552 (patch) | |
| tree | 63b25b0718d66c622eb27efa8213105ef4e984fc /llvm/include | |
| parent | 65b9056f3dbba45ffd16d780b058a3d044115a59 (diff) | |
| download | bcm5719-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.h | 6 |
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 |

