LLVM: lib/Target/X86/X86CodeGenPassBuilder.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

16

20

21using namespace llvm;

22

23namespace {

24

25class X86CodeGenPassBuilder

26 : public CodeGenPassBuilder<X86CodeGenPassBuilder, X86TargetMachine> {

27public:

28 explicit X86CodeGenPassBuilder(X86TargetMachine &TM,

29 const CGPassBuilderOption &Opts,

30 PassInstrumentationCallbacks *PIC)

31 : CodeGenPassBuilder(TM, Opts, PIC) {}

32 void addPreISel(AddIRPass &addPass) const;

33 void addAsmPrinter(AddMachinePass &, CreateMCStreamer) const;

34 Error addInstSelector(AddMachinePass &) const;

35};

36

37void X86CodeGenPassBuilder::addPreISel(AddIRPass &addPass) const {

38

39}

40

41void X86CodeGenPassBuilder::addAsmPrinter(AddMachinePass &addPass,

42 CreateMCStreamer) const {

43

44}

45

46Error X86CodeGenPassBuilder::addInstSelector(AddMachinePass &addPass) const {

47

48 addPass(X86ISelDAGToDAGPass(TM));

50}

51

52}

53

55#define GET_PASS_REGISTRY "X86PassRegistry.def"

57}

58

63 auto CGPB = X86CodeGenPassBuilder(*this, Opt, PIC);

64 return CGPB.buildPipeline(MPM, Out, DwoOut, FileType);

65}

Interfaces for producing common pass manager configurations.

PassInstrumentationCallbacks PIC

PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)

This class provides access to building LLVM's passes.

Lightweight error class with error context and mandatory checking.

static ErrorSuccess success()

Create a success value.

This class provides access to building LLVM's passes.

This class manages callbacks registration, as well as provides a way for PassInstrumentation to pass ...

void registerPassBuilderCallbacks(PassBuilder &PB) override

Allow the target to modify the pass pipeline.

Definition X86CodeGenPassBuilder.cpp:54

Error buildCodeGenPipeline(ModulePassManager &, raw_pwrite_stream &, raw_pwrite_stream *, CodeGenFileType, const CGPassBuilderOption &, PassInstrumentationCallbacks *) override

Definition X86CodeGenPassBuilder.cpp:59

An abstract base class for streams implementations that also support a pwrite operation.

Interfaces for registering analysis passes, producing common pass manager configurations,...

This is an optimization pass for GlobalISel generic memory operations.

CodeGenFileType

These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit,...

PassManager< Module > ModulePassManager

Convenience typedef for a pass manager over modules.