[llvm-commits] [llvm] r169164 - in /llvm/trunk: include/llvm/Analysis/LoopPass.h include/llvm/Analysis/RegionPass.h include/llvm/CallGraphSCCPass.h include/llvm/CodeGen/MachineModuleInfo.h include/llvm/Pass.h lib/CodeGen/MachineModuleInfo.cpp lib/VMCore/Pass.cpp lib/VMCore/PassManager.cpp
Matt Beaumont-Gay
matthewbg at google.com
Mon Dec 3 16:03:46 PST 2012
Yes. I'm building with gcc 4.7, if that helps.
On Mon, Dec 3, 2012 at 4:01 PM, Pedro Artigas <partigas at apple.com> wrote:
> I cannot reproduce the issue that you reported, are you sure your tree is in sync with TOT?
>
> Thanks
>
> Pedro
>
> On Dec 3, 2012, at 3:49 PM, Pedro Artigas <partigas at apple.com> wrote:
>
>> I will check the issue, I did not see it before check in.
>>
>> Thanks
>>
>> Pedro
>> On Dec 3, 2012, at 3:43 PM, Matt Beaumont-Gay <matthewbg at google.com> wrote:
>>
>>> Hi Pedro,
>>>
>>> This added a number of -Woverloaded-virtual warnings, e.g.:
>>>
>>> In file included from llvm/include/llvm/Analysis/CallGraph.h:57:0,
>>> from llvm/lib/Transforms/IPO/InlineAlways.cpp:18:
>>> llvm/include/llvm/Pass.h:115:16: error: 'virtual bool
>>> llvm::Pass::doFinalization(llvm::Module&)' was hidden
>>> [-Werror=overloaded-virtual]
>>> In file included from llvm/lib/Transforms/IPO/InlineAlways.cpp:26:0:
>>> llvm/include/llvm/Transforms/IPO/InlinerPass.h:47:16: error: by
>>> 'virtual bool llvm::Inliner::doFinalization(llvm::CallGraph&)'
>>> [-Werror=overloaded-virtual]
>>>
>>> I haven't been following the pass manager refactoring discussion very
>>> closely; are further patches coming to fix this issue?
>>>
>>> Thanks,
>>> Matt
>>>
>>> On Mon, Dec 3, 2012 at 1:56 PM, Pedro Artigas <partigas at apple.com> wrote:
>>>> Author: partigas
>>>> Date: Mon Dec 3 15:56:57 2012
>>>> New Revision: 169164
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=169164&view=rev
>>>> Log:
>>>> moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo
>>>>
>>>> reviewed by Evan Cheng <evan.cheng at apple.com>
>>>>
>>>>
>>>> Modified:
>>>> llvm/trunk/include/llvm/Analysis/LoopPass.h
>>>> llvm/trunk/include/llvm/Analysis/RegionPass.h
>>>> llvm/trunk/include/llvm/CallGraphSCCPass.h
>>>> llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
>>>> llvm/trunk/include/llvm/Pass.h
>>>> llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp
>>>> llvm/trunk/lib/VMCore/Pass.cpp
>>>> llvm/trunk/lib/VMCore/PassManager.cpp
>>>>
>>>> Modified: llvm/trunk/include/llvm/Analysis/LoopPass.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/LoopPass.h?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/include/llvm/Analysis/LoopPass.h (original)
>>>> +++ llvm/trunk/include/llvm/Analysis/LoopPass.h Mon Dec 3 15:56:57 2012
>>>> @@ -39,6 +39,9 @@
>>>> // whatever action is necessary for the specified Loop.
>>>> virtual bool runOnLoop(Loop *L, LPPassManager &LPM) = 0;
>>>>
>>>> + using llvm::Pass::doInitialization;
>>>> + using llvm::Pass::doFinalization;
>>>> +
>>>> // Initialization and finalization hooks.
>>>> virtual bool doInitialization(Loop *L, LPPassManager &LPM) {
>>>> return false;
>>>>
>>>> Modified: llvm/trunk/include/llvm/Analysis/RegionPass.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/RegionPass.h?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/include/llvm/Analysis/RegionPass.h (original)
>>>> +++ llvm/trunk/include/llvm/Analysis/RegionPass.h Mon Dec 3 15:56:57 2012
>>>> @@ -57,6 +57,9 @@
>>>> /// @return The pass to print the LLVM IR in the region.
>>>> Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const;
>>>>
>>>> + using llvm::Pass::doInitialization;
>>>> + using llvm::Pass::doFinalization;
>>>> +
>>>> virtual bool doInitialization(Region *R, RGPassManager &RGM) { return false; }
>>>> virtual bool doFinalization() { return false; }
>>>> //@}
>>>>
>>>> Modified: llvm/trunk/include/llvm/CallGraphSCCPass.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CallGraphSCCPass.h?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/include/llvm/CallGraphSCCPass.h (original)
>>>> +++ llvm/trunk/include/llvm/CallGraphSCCPass.h Mon Dec 3 15:56:57 2012
>>>> @@ -39,6 +39,9 @@
>>>> /// corresponding to a CallGraph.
>>>> Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const;
>>>>
>>>> + using llvm::Pass::doInitialization;
>>>> + using llvm::Pass::doFinalization;
>>>> +
>>>> /// doInitialization - This method is called before the SCC's of the program
>>>> /// has been processed, allowing the pass to do initialization as necessary.
>>>> virtual bool doInitialization(CallGraph &CG) {
>>>>
>>>> Modified: llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h (original)
>>>> +++ llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h Mon Dec 3 15:56:57 2012
>>>> @@ -180,12 +180,6 @@
>>>> const MCObjectFileInfo *MOFI);
>>>> ~MachineModuleInfo();
>>>>
>>>> - using ModulePass::doInitialization;
>>>> - bool doInitialization();
>>>> -
>>>> - using ModulePass::doFinalization;
>>>> - bool doFinalization();
>>>> -
>>>> /// EndFunction - Discard function meta information.
>>>> ///
>>>> void EndFunction();
>>>>
>>>> Modified: llvm/trunk/include/llvm/Pass.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Pass.h?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/include/llvm/Pass.h (original)
>>>> +++ llvm/trunk/include/llvm/Pass.h Mon Dec 3 15:56:57 2012
>>>> @@ -104,6 +104,16 @@
>>>> return PassID;
>>>> }
>>>>
>>>> + /// doInitialization - Virtual method overridden by subclasses to do
>>>> + /// any necessary initialization before any pass is run.
>>>> + ///
>>>> + virtual bool doInitialization(Module &) { return false; }
>>>> +
>>>> + /// doFinalization - Virtual method overriden by subclasses to do any
>>>> + /// necessary clean up after all passes have run.
>>>> + ///
>>>> + virtual bool doFinalization(Module &) { return false; }
>>>> +
>>>> /// print - Print out the internal state of the pass. This is called by
>>>> /// Analyze to print out the contents of an analysis. Otherwise it is not
>>>> /// necessary to implement this method. Beware that the module pointer MAY be
>>>> @@ -227,20 +237,10 @@
>>>> /// createPrinterPass - Get a module printer pass.
>>>> Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const;
>>>>
>>>> - /// doInitialization - Virtual method overridden by subclasses to do
>>>> - /// any necessary initialization before any pass is run.
>>>> - ///
>>>> - virtual bool doInitialization(Module &) { return false; }
>>>> -
>>>> /// runOnModule - Virtual method overriden by subclasses to process the module
>>>> /// being operated on.
>>>> virtual bool runOnModule(Module &M) = 0;
>>>>
>>>> - /// doFinalization - Virtual method overriden by subclasses to do any
>>>> - /// necessary clean up after all passes have run.
>>>> - ///
>>>> - virtual bool doFinalization(Module &) { return false; }
>>>> -
>>>> virtual void assignPassManager(PMStack &PMS,
>>>> PassManagerType T);
>>>>
>>>> @@ -297,21 +297,11 @@
>>>> /// createPrinterPass - Get a function printer pass.
>>>> Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const;
>>>>
>>>> - /// doInitialization - Virtual method overridden by subclasses to do
>>>> - /// any necessary per-module initialization.
>>>> - ///
>>>> - virtual bool doInitialization(Module &);
>>>> -
>>>> /// runOnFunction - Virtual method overriden by subclasses to do the
>>>> /// per-function processing of the pass.
>>>> ///
>>>> virtual bool runOnFunction(Function &F) = 0;
>>>>
>>>> - /// doFinalization - Virtual method overriden by subclasses to do any post
>>>> - /// processing needed after all passes have run.
>>>> - ///
>>>> - virtual bool doFinalization(Module &);
>>>> -
>>>> virtual void assignPassManager(PMStack &PMS,
>>>> PassManagerType T);
>>>>
>>>> @@ -338,10 +328,8 @@
>>>> /// createPrinterPass - Get a basic block printer pass.
>>>> Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const;
>>>>
>>>> - /// doInitialization - Virtual method overridden by subclasses to do
>>>> - /// any necessary per-module initialization.
>>>> - ///
>>>> - virtual bool doInitialization(Module &);
>>>> + using llvm::Pass::doInitialization;
>>>> + using llvm::Pass::doFinalization;
>>>>
>>>> /// doInitialization - Virtual method overridden by BasicBlockPass subclasses
>>>> /// to do any necessary per-function initialization.
>>>> @@ -358,11 +346,6 @@
>>>> ///
>>>> virtual bool doFinalization(Function &);
>>>>
>>>> - /// doFinalization - Virtual method overriden by subclasses to do any post
>>>> - /// processing needed after all passes have run.
>>>> - ///
>>>> - virtual bool doFinalization(Module &);
>>>> -
>>>> virtual void assignPassManager(PMStack &PMS,
>>>> PassManagerType T);
>>>>
>>>>
>>>> Modified: llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp (original)
>>>> +++ llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp Mon Dec 3 15:56:57 2012
>>>> @@ -281,21 +281,6 @@
>>>> AddrLabelSymbols = 0;
>>>> }
>>>>
>>>> -/// doInitialization - Initialize the state for a new module.
>>>> -///
>>>> -bool MachineModuleInfo::doInitialization() {
>>>> - assert(AddrLabelSymbols == 0 && "Improperly initialized");
>>>> - return false;
>>>> -}
>>>> -
>>>> -/// doFinalization - Tear down the state after completion of a module.
>>>> -///
>>>> -bool MachineModuleInfo::doFinalization() {
>>>> - delete AddrLabelSymbols;
>>>> - AddrLabelSymbols = 0;
>>>> - return false;
>>>> -}
>>>> -
>>>> /// EndFunction - Discard function meta information.
>>>> ///
>>>> void MachineModuleInfo::EndFunction() {
>>>>
>>>> Modified: llvm/trunk/lib/VMCore/Pass.cpp
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Pass.cpp?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/lib/VMCore/Pass.cpp (original)
>>>> +++ llvm/trunk/lib/VMCore/Pass.cpp Mon Dec 3 15:56:57 2012
>>>> @@ -133,16 +133,6 @@
>>>> return createPrintFunctionPass(Banner, &O);
>>>> }
>>>>
>>>> -bool FunctionPass::doInitialization(Module &) {
>>>> - // By default, don't do anything.
>>>> - return false;
>>>> -}
>>>> -
>>>> -bool FunctionPass::doFinalization(Module &) {
>>>> - // By default, don't do anything.
>>>> - return false;
>>>> -}
>>>> -
>>>> PassManagerType FunctionPass::getPotentialPassManagerType() const {
>>>> return PMT_FunctionPassManager;
>>>> }
>>>> @@ -157,11 +147,6 @@
>>>> llvm_unreachable("BasicBlockPass printing unsupported.");
>>>> }
>>>>
>>>> -bool BasicBlockPass::doInitialization(Module &) {
>>>> - // By default, don't do anything.
>>>> - return false;
>>>> -}
>>>> -
>>>> bool BasicBlockPass::doInitialization(Function &) {
>>>> // By default, don't do anything.
>>>> return false;
>>>> @@ -172,11 +157,6 @@
>>>> return false;
>>>> }
>>>>
>>>> -bool BasicBlockPass::doFinalization(Module &) {
>>>> - // By default, don't do anything.
>>>> - return false;
>>>> -}
>>>> -
>>>> PassManagerType BasicBlockPass::getPotentialPassManagerType() const {
>>>> return PMT_BasicBlockPassManager;
>>>> }
>>>>
>>>> Modified: llvm/trunk/lib/VMCore/PassManager.cpp
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/PassManager.cpp?rev=169164&r1=169163&r2=169164&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/lib/VMCore/PassManager.cpp (original)
>>>> +++ llvm/trunk/lib/VMCore/PassManager.cpp Mon Dec 3 15:56:57 2012
>>>> @@ -309,6 +309,9 @@
>>>> /// whether any of the passes modifies the module, and if so, return true.
>>>> bool runOnModule(Module &M);
>>>>
>>>> + using llvm::Pass::doInitialization;
>>>> + using llvm::Pass::doFinalization;
>>>> +
>>>> /// doInitialization - Run all of the initializers for the module passes.
>>>> ///
>>>> bool doInitialization();
>>>> @@ -402,6 +405,9 @@
>>>> /// whether any of the passes modifies the module, and if so, return true.
>>>> bool run(Module &M);
>>>>
>>>> + using llvm::Pass::doInitialization;
>>>> + using llvm::Pass::doFinalization;
>>>> +
>>>> /// doInitialization - Run all of the initializers for the module passes.
>>>> ///
>>>> bool doInitialization();
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>> _______________________________________________
>> 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