37#include "llvm/Analysis/CFG.h"
38#include "llvm/CodeGen/Passes.h"
39#include "tce_config.h"
40#include "llvm/IR/Module.h"
41#include "llvm/IR/Constant.h"
42#include "llvm/IR/Constants.h"
43#include "llvm/IR/Instructions.h"
44#include "llvm/IR/Function.h"
45#include "llvm/IR/Type.h"
47#include "llvm/CodeGen/MachineFunctionPass.h"
48#include "llvm/CodeGen/MachineRegisterInfo.h"
50#include "llvm/Support/Compiler.h"
51#include "llvm/CodeGen/TargetInstrInfo.h"
52#include "llvm/ADT/DepthFirstIterator.h"
53#include "llvm/Analysis/CallGraph.h"
54#include "llvm/Analysis/AliasAnalysis.h"
55#include "llvm/Analysis/Passes.h"
56#include "llvm/Support/Debug.h"
57#include "llvm/Support/raw_ostream.h"
59#include "llvm/ADT/StringMap.h"
89 return "TCE deadcode elimination of unused emulation functions";
#define IGNORE_COMPILER_WARNING(X)
#define POP_COMPILER_DIAGS
virtual bool runOnMachineFunction(MachineFunction &F) override
UserList baseUsers_
If users are traced to this list it means that function cannot be eliminated.
std::map< std::string, MachineFunction * > FunctionMap
std::set< std::string > UserList
bool canFindStart(const std::string &user, AvoidRecursionSet &avoid_recursion)
virtual bool doInitialization(Module &M) override
UnusedFunctionsList removeableFunctions
std::set< std::string > UnusedFunctionsList
virtual bool doFinalization(Module &M) override
UserRelations usersOfValue_
List of users of a symbol.
std::map< std::string, UserList > UserRelations
std::set< const std::string * > AvoidRecursionSet
virtual StringRef getPassName() const override
void addInitializer(const Constant *init, std::string &name)
FunctionMap functionMappings_
Function name to MachineFunction map.