[llvm] r205471 - Revert "Reapply "LTO: add API to set strategy for -internalize""
Rafael EspĂndola
rafael.espindola at gmail.com
Wed Apr 2 22:11:24 PDT 2014
thanks!
On 2 April 2014 18:05, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> Author: dexonsmith
> Date: Wed Apr 2 17:05:57 2014
> New Revision: 205471
>
> URL: http://llvm.org/viewvc/llvm-project?rev=205471&view=rev
> Log:
> Revert "Reapply "LTO: add API to set strategy for -internalize""
>
> This reverts commit r199244.
>
> Conflicts:
> include/llvm-c/lto.h
> include/llvm/LTO/LTOCodeGenerator.h
> lib/LTO/LTOCodeGenerator.cpp
>
> Modified:
> llvm/trunk/include/llvm-c/lto.h
> llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h
> llvm/trunk/include/llvm/Transforms/IPO.h
> llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
> llvm/trunk/lib/Transforms/IPO/Internalize.cpp
> llvm/trunk/tools/lto/lto.cpp
>
> Modified: llvm/trunk/include/llvm-c/lto.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/lto.h?rev=205471&r1=205470&r2=205471&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm-c/lto.h (original)
> +++ llvm/trunk/include/llvm-c/lto.h Wed Apr 2 17:05:57 2014
> @@ -82,15 +82,6 @@ typedef enum {
> LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC = 2
> } lto_codegen_model;
>
> -/**
> - * \since LTO_API_VERSION=6
> - */
> -typedef enum {
> - LTO_INTERNALIZE_FULL = 0,
> - LTO_INTERNALIZE_NONE = 1,
> - LTO_INTERNALIZE_HIDDEN = 2
> -} lto_internalize_strategy;
> -
> /** opaque reference to a loaded object module */
> typedef struct LTOModule* lto_module_t;
>
> @@ -403,16 +394,6 @@ lto_codegen_set_assembler_args(lto_code_
> int nargs);
>
> /**
> - * Sets the strategy to use during internalize. Default strategy is
> - * LTO_INTERNALIZE_FULL.
> - *
> - * \since LTO_API_VERSION=6
> - */
> -extern void
> -lto_codegen_set_internalize_strategy(lto_code_gen_t cg,
> - lto_internalize_strategy);
> -
> -/**
> * Tells LTO optimization passes that this symbol must be preserved
> * because it is referenced by native code or a command line option.
> *
>
> Modified: llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h?rev=205471&r1=205470&r2=205471&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h (original)
> +++ llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h Wed Apr 2 17:05:57 2014
> @@ -71,7 +71,6 @@ struct LTOCodeGenerator {
> void setTargetOptions(llvm::TargetOptions options);
> void setDebugInfo(lto_debug_model);
> void setCodePICModel(lto_codegen_model);
> - void setInternalizeStrategy(lto_internalize_strategy);
>
> void setCpu(const char *mCpu) { MCpu = mCpu; }
>
> @@ -118,14 +117,6 @@ struct LTOCodeGenerator {
>
> void setDiagnosticHandler(lto_diagnostic_handler_t, void *);
>
> - bool shouldInternalize() const {
> - return InternalizeStrategy != LTO_INTERNALIZE_NONE;
> - }
> -
> - bool shouldOnlyInternalizeHidden() const {
> - return InternalizeStrategy == LTO_INTERNALIZE_HIDDEN;
> - }
> -
> private:
> void initializeLTOPasses();
>
> @@ -154,7 +145,6 @@ private:
> bool EmitDwarfDebugInfo;
> bool ScopeRestrictionsDone;
> lto_codegen_model CodeModel;
> - lto_internalize_strategy InternalizeStrategy;
> StringSet MustPreserveSymbols;
> StringSet AsmUndefinedRefs;
> llvm::MemoryBuffer *NativeObjectFile;
>
> Modified: llvm/trunk/include/llvm/Transforms/IPO.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO.h?rev=205471&r1=205470&r2=205471&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Transforms/IPO.h (original)
> +++ llvm/trunk/include/llvm/Transforms/IPO.h Wed Apr 2 17:05:57 2014
> @@ -112,19 +112,14 @@ Pass *createPruneEHPass();
> ////
> /// The symbols in \p ExportList are never internalized.
> ///
> -/// When OnlyHidden=true, only symbols with hidden visibility are internalized.
> -///
> /// The symbol in DSOList are internalized if it is safe to drop them from
> /// the symbol table.
> ///
> /// Note that commandline options that are used with the above function are not
> /// used now!
> -ModulePass *createInternalizePass(ArrayRef<const char *> ExportList,
> - bool OnlyHidden = false);
> +ModulePass *createInternalizePass(ArrayRef<const char *> ExportList);
> /// createInternalizePass - Same as above, but with an empty exportList.
> -ModulePass *createInternalizePass(bool OnlyHidden = false);
> -/// createInternalizePass - Resolve ambiguity when passed a const char *.
> -ModulePass *createInternalizePass(const char *SingleExport);
> +ModulePass *createInternalizePass();
>
> //===----------------------------------------------------------------------===//
> /// createDeadArgEliminationPass - This pass removes arguments from functions
>
> Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=205471&r1=205470&r2=205471&view=diff
> ==============================================================================
> --- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)
> +++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Wed Apr 2 17:05:57 2014
> @@ -65,8 +65,7 @@ const char* LTOCodeGenerator::getVersion
> LTOCodeGenerator::LTOCodeGenerator()
> : Context(getGlobalContext()), Linker(new Module("ld-temp.o", Context)),
> TargetMach(NULL), EmitDwarfDebugInfo(false), ScopeRestrictionsDone(false),
> - CodeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC),
> - InternalizeStrategy(LTO_INTERNALIZE_FULL), NativeObjectFile(NULL),
> + CodeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC), NativeObjectFile(NULL),
> DiagHandler(NULL), DiagContext(NULL) {
> initializeLTOPasses();
> }
> @@ -169,18 +168,6 @@ void LTOCodeGenerator::setCodePICModel(l
> llvm_unreachable("Unknown PIC model!");
> }
>
> -void
> -LTOCodeGenerator::setInternalizeStrategy(lto_internalize_strategy Strategy) {
> - switch (Strategy) {
> - case LTO_INTERNALIZE_FULL:
> - case LTO_INTERNALIZE_NONE:
> - case LTO_INTERNALIZE_HIDDEN:
> - InternalizeStrategy = Strategy;
> - return;
> - }
> - llvm_unreachable("Unknown internalize strategy!");
> -}
> -
> bool LTOCodeGenerator::writeMergedModules(const char *path,
> std::string &errMsg) {
> if (!determineTarget(errMsg))
> @@ -402,7 +389,7 @@ static void accumulateAndSortLibcalls(st
> }
>
> void LTOCodeGenerator::applyScopeRestrictions() {
> - if (ScopeRestrictionsDone || !shouldInternalize())
> + if (ScopeRestrictionsDone)
> return;
> Module *mergedModule = Linker.getModule();
>
> @@ -454,8 +441,7 @@ void LTOCodeGenerator::applyScopeRestric
> LLVMCompilerUsed->setSection("llvm.metadata");
> }
>
> - passes.add(
> - createInternalizePass(MustPreserveList, shouldOnlyInternalizeHidden()));
> + passes.add(createInternalizePass(MustPreserveList));
>
> // apply scope restrictions
> passes.run(*mergedModule);
>
> Modified: llvm/trunk/lib/Transforms/IPO/Internalize.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Internalize.cpp?rev=205471&r1=205470&r2=205471&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/Internalize.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/Internalize.cpp Wed Apr 2 17:05:57 2014
> @@ -54,11 +54,10 @@ APIList("internalize-public-api-list", c
> namespace {
> class InternalizePass : public ModulePass {
> std::set<std::string> ExternalNames;
> - bool OnlyHidden;
> public:
> static char ID; // Pass identification, replacement for typeid
> - explicit InternalizePass(bool OnlyHidden = false);
> - explicit InternalizePass(ArrayRef<const char *> ExportList, bool OnlyHidden);
> + explicit InternalizePass();
> + explicit InternalizePass(ArrayRef<const char *> ExportList);
> void LoadFile(const char *Filename);
> bool runOnModule(Module &M) override;
>
> @@ -73,17 +72,15 @@ char InternalizePass::ID = 0;
> INITIALIZE_PASS(InternalizePass, "internalize",
> "Internalize Global Symbols", false, false)
>
> -InternalizePass::InternalizePass(bool OnlyHidden)
> - : ModulePass(ID), OnlyHidden(OnlyHidden) {
> +InternalizePass::InternalizePass() : ModulePass(ID) {
> initializeInternalizePassPass(*PassRegistry::getPassRegistry());
> if (!APIFile.empty()) // If a filename is specified, use it.
> LoadFile(APIFile.c_str());
> ExternalNames.insert(APIList.begin(), APIList.end());
> }
>
> -InternalizePass::InternalizePass(ArrayRef<const char *> ExportList,
> - bool OnlyHidden)
> - : ModulePass(ID), OnlyHidden(OnlyHidden) {
> +InternalizePass::InternalizePass(ArrayRef<const char *> ExportList)
> + : ModulePass(ID) {
> initializeInternalizePassPass(*PassRegistry::getPassRegistry());
> for(ArrayRef<const char *>::const_iterator itr = ExportList.begin();
> itr != ExportList.end(); itr++) {
> @@ -108,11 +105,7 @@ void InternalizePass::LoadFile(const cha
> }
>
> static bool shouldInternalize(const GlobalValue &GV,
> - const std::set<std::string> &ExternalNames,
> - bool OnlyHidden) {
> - if (OnlyHidden && !GV.hasHiddenVisibility())
> - return false;
> -
> + const std::set<std::string> &ExternalNames) {
> // Function must be defined here
> if (GV.isDeclaration())
> return false;
> @@ -162,7 +155,7 @@ bool InternalizePass::runOnModule(Module
>
> // Mark all functions not in the api as internal.
> for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
> - if (!shouldInternalize(*I, ExternalNames, OnlyHidden))
> + if (!shouldInternalize(*I, ExternalNames))
> continue;
>
> I->setLinkage(GlobalValue::InternalLinkage);
> @@ -198,7 +191,7 @@ bool InternalizePass::runOnModule(Module
> // internal as well.
> for (Module::global_iterator I = M.global_begin(), E = M.global_end();
> I != E; ++I) {
> - if (!shouldInternalize(*I, ExternalNames, OnlyHidden))
> + if (!shouldInternalize(*I, ExternalNames))
> continue;
>
> I->setLinkage(GlobalValue::InternalLinkage);
> @@ -210,7 +203,7 @@ bool InternalizePass::runOnModule(Module
> // Mark all aliases that are not in the api as internal as well.
> for (Module::alias_iterator I = M.alias_begin(), E = M.alias_end();
> I != E; ++I) {
> - if (!shouldInternalize(*I, ExternalNames, OnlyHidden))
> + if (!shouldInternalize(*I, ExternalNames))
> continue;
>
> I->setLinkage(GlobalValue::InternalLinkage);
> @@ -222,15 +215,8 @@ bool InternalizePass::runOnModule(Module
> return Changed;
> }
>
> -ModulePass *llvm::createInternalizePass(bool OnlyHidden) {
> - return new InternalizePass(OnlyHidden);
> -}
> -
> -ModulePass *llvm::createInternalizePass(ArrayRef<const char *> ExportList,
> - bool OnlyHidden) {
> - return new InternalizePass(ExportList, OnlyHidden);
> -}
> +ModulePass *llvm::createInternalizePass() { return new InternalizePass(); }
>
> -ModulePass *llvm::createInternalizePass(const char *SingleExport) {
> - return createInternalizePass(ArrayRef<const char *>(SingleExport));
> +ModulePass *llvm::createInternalizePass(ArrayRef<const char *> ExportList) {
> + return new InternalizePass(ExportList);
> }
>
> Modified: llvm/trunk/tools/lto/lto.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/lto.cpp?rev=205471&r1=205470&r2=205471&view=diff
> ==============================================================================
> --- llvm/trunk/tools/lto/lto.cpp (original)
> +++ llvm/trunk/tools/lto/lto.cpp Wed Apr 2 17:05:57 2014
> @@ -264,13 +264,6 @@ void lto_codegen_set_assembler_args(lto_
> // In here only for backwards compatibility. We use MC now.
> }
>
> -/// lto_codegen_set_internalize_strategy - Sets the strategy to use during
> -/// internalize.
> -void lto_codegen_set_internalize_strategy(lto_code_gen_t cg,
> - lto_internalize_strategy strategy) {
> - cg->setInternalizeStrategy(strategy);
> -}
> -
> /// lto_codegen_add_must_preserve_symbol - Adds to a list of all global symbols
> /// that must exist in the final generated code. If a function is not listed
> /// there, it might be inlined into every usage and optimized away.
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list