Some tweaks to optimisation order.

main
theraven 15 years ago
parent 2912bae0a7
commit 4f31ed8acd

@ -8,9 +8,12 @@
#include "llvm/Support/CallSite.h"
#include "llvm/Support/IRBuilder.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/DefaultPasses.h"
#include "ObjectiveCOpts.h"
#include "IMPCacher.h"
#include <string>
using namespace GNUstep;
using namespace llvm;
using std::string;
@ -83,6 +86,15 @@ namespace
char ClassIMPCachePass::ID = 0;
RegisterPass<ClassIMPCachePass> X("gnu-class-imp-cache",
"Cache IMPs for class messages");
#if LLVM_MAJOR > 2
StandardPass::RegisterStandardPass<ClassIMPCachePass> D(
StandardPass::Module, &NonfragileIvarID,
StandardPass::OptimzationFlags(2, 0, 0, StandardPass::OptimizeSize),
&ClassIMPCacheID);
StandardPass::RegisterStandardPass<ClassIMPCachePass> L(StandardPass::LTO,
&NonfragileIvarID, StandardPass::OptimzationFlags(0),
&ClassIMPCacheID);
#endif
}
ModulePass *createClassIMPCachePass(void)

@ -101,7 +101,7 @@ namespace
removeTerminator(beforeLookupBB);
removeTerminator(lookupBB);
PHINode *phi = CreatePHI(clsTy, 2, cls, afterLookupBB->begin());
PHINode *phi = CreatePHI(clsTy, 2, cls, afterLookupBB->begin());
// We replace all of the existing uses with the PHI node now, because
// we're going to add some more uses later that we don't want
// replaced.
@ -150,7 +150,8 @@ namespace
#if LLVM_MAJOR > 2
StandardPass::RegisterStandardPass<ClassLookupCachePass> D(
StandardPass::Module, &LoopIMPCacheID,
StandardPass::OptimzationFlags(1), &ClassLookupCacheID);
StandardPass::OptimzationFlags(1, 0, 0, StandardPass::OptimizeSize),
&ClassLookupCacheID);
StandardPass::RegisterStandardPass<ClassLookupCachePass> L(StandardPass::LTO,
&LoopIMPCacheID, StandardPass::OptimzationFlags(0),
&ClassLookupCacheID);

@ -42,7 +42,6 @@ namespace
ClassMethodInliner() : ModulePass(ID) {}
virtual bool runOnModule(Module &M) {
return false;
unsigned MessageSendMDKind = M.getContext().getMDKindID("GNUObjCMessageSend");
InlineCostAnalyzer CA;
SmallPtrSet<const Function *, 16> NeverInline;
@ -105,7 +104,8 @@ namespace
#if LLVM_MAJOR > 2
StandardPass::RegisterStandardPass<ClassMethodInliner> D(
StandardPass::Module, &ClassLookupCacheID,
StandardPass::OptimzationFlags(1), &ClassMethodInlinerID);
StandardPass::OptimzationFlags(3, 0, 0, StandardPass::OptimizeSize),
&ClassMethodInlinerID);
StandardPass::RegisterStandardPass<ClassMethodInliner> L(StandardPass::LTO,
&ClassLookupCacheID, StandardPass::OptimzationFlags(0),
&ClassMethodInlinerID);

@ -89,10 +89,11 @@ namespace
"Cache IMPs in loops pass");
#if LLVM_MAJOR > 2
StandardPass::RegisterStandardPass<GNULoopIMPCachePass> D(
StandardPass::Module, &NonfragileIvarID,
StandardPass::OptimzationFlags(1), &LoopIMPCacheID);
StandardPass::Module, &ClassIMPCacheID,
StandardPass::OptimzationFlags(2, 0, 0, StandardPass::OptimizeSize),
&LoopIMPCacheID);
StandardPass::RegisterStandardPass<GNULoopIMPCachePass> L(StandardPass::LTO,
&NonfragileIvarID, StandardPass::OptimzationFlags(0),
&ClassIMPCacheID, StandardPass::OptimzationFlags(0),
&LoopIMPCacheID);
#endif
}

Loading…
Cancel
Save