LLVM: lib/CodeGen/FuncletLayout.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

18using namespace llvm;

19

20#define DEBUG_TYPE "funclet-layout"

21

22namespace {

24public:

25 static char ID;

28 }

29

33 }

34};

35}

36

37char FuncletLayout::ID = 0;

40 "Contiguously Lay Out Funclets", false, false)

41

43

44

45

48 if (FuncletMembership.empty())

49 return false;

50

52 auto FuncletX = FuncletMembership.find(&X);

53 auto FuncletY = FuncletMembership.find(&Y);

54 assert(FuncletX != FuncletMembership.end());

55 assert(FuncletY != FuncletMembership.end());

56 return FuncletX->second < FuncletY->second;

57 });

58

59

60 return true;

61}

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)

static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, "Generate example skeleton entry")

static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")

iterator find(const_arg_type_t< KeyT > Val)

MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...

Properties which a MachineFunction may have at a given point in time.

static LLVM_ABI PassRegistry * getPassRegistry()

getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

This is an optimization pass for GlobalISel generic memory operations.

LLVM_ABI void initializeFuncletLayoutPass(PassRegistry &)

LLVM_ABI char & FuncletLayoutID

This pass lays out funclets contiguously.

Definition FuncletLayout.cpp:38

DenseMap< const MachineBasicBlock *, int > getEHScopeMembership(const MachineFunction &MF)