[llvm] r271650 - Remove bogus initialization of the PPC and Hexagon SelectionDAGISel

Krzysztof Parzyszek via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 6 12:08:36 PDT 2016


Ok, I'll think of some other way.

Thanks,
-Krzysztof


On 6/6/2016 2:00 PM, Chandler Carruth wrote:
> I'm not sure, but not by using the pass registration mechanism. You
> could potentially add support directly to SDAG ISel base class for doing
> this? others might have more ideas.
>
> The core problem here is that there isn't a distinct pass ID to
> register. As a consequence, these violate a large number of assumptions
> about how the pass registration system works, which makes it really
> brittle to use this, especially to just get IR dumping for debugging (an
> important use case, but one which might be solved in any number of other
> ways).
>
> On Fri, Jun 3, 2016 at 6:53 AM Krzysztof Parzyszek via llvm-commits
> <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>
>     The reason for these was to get the IR dump after the initial
>     instruction selection with -print-after-all.  Now that no longer works.
>
>     How do I get it back?
>
>     -Krzysztof
>
>
>     On 6/3/2016 5:13 AM, Chandler Carruth via llvm-commits wrote:
>     > Author: chandlerc
>     > Date: Fri Jun  3 05:13:31 2016
>     > New Revision: 271650
>     >
>     > URL: http://llvm.org/viewvc/llvm-project?rev=271650&view=rev
>     > Log:
>     > Remove bogus initialization of the PPC and Hexagon SelectionDAGISel
>     > subclasses. These are not passes proper. We don't support registering
>     > them, they can't be constructed with default arguments, and the ID is
>     > actually in a base class.
>     >
>     > Only these two targets even had any boiler plate to try to do
>     this, and
>     > it had to be munged out of the INITIALIZE_PASS macros to work. What's
>     > worse, the boiler plate has rotted and the "name" of the pass is
>     > actually the description string now!!! =/ All of this is completely
>     > unnecessary. No other target bothers, and nothing breaks if you don't
>     > initialize them because CodeGen has an entirely separate
>     initialization
>     > path that is somewhat more durable than relying on the implicit
>     > initialization the way the 'opt' tool does for registered passes.
>     >
>     > Modified:
>     >     llvm/trunk/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
>     >     llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
>     >
>     > Modified: llvm/trunk/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
>     > URL:
>     http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp?rev=271650&r1=271649&r2=271650&view=diff
>     >
>     ==============================================================================
>     > --- llvm/trunk/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp (original)
>     > +++ llvm/trunk/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp Fri Jun
>     3 05:13:31 2016
>     > @@ -36,10 +36,6 @@ MaxNumOfUsesForConstExtenders("ga-max-nu
>     >  // Instruction Selector Implementation
>     >
>     //===----------------------------------------------------------------------===//
>     >
>     > -namespace llvm {
>     > -  void initializeHexagonDAGToDAGISelPass(PassRegistry&);
>     > -}
>     > -
>     >
>     //===--------------------------------------------------------------------===//
>     >  /// HexagonDAGToDAGISel - Hexagon specific code to select Hexagon
>     machine
>     >  /// instructions for SelectionDAG operations.
>     > @@ -54,9 +50,7 @@ public:
>     >    explicit HexagonDAGToDAGISel(HexagonTargetMachine &tm,
>     >                                 CodeGenOpt::Level OptLevel)
>     >        : SelectionDAGISel(tm, OptLevel), HTM(tm), HST(nullptr),
>     HII(nullptr),
>     > -        HRI(nullptr) {
>     > -
>     initializeHexagonDAGToDAGISelPass(*PassRegistry::getPassRegistry());
>     > -  }
>     > +        HRI(nullptr) {}
>     >
>     >    bool runOnMachineFunction(MachineFunction &MF) override {
>     >      // Reset the subtarget each time through.
>     > @@ -200,18 +194,6 @@ FunctionPass *createHexagonISelDag(Hexag
>     >  }
>     >  }
>     >
>     > -static void initializePassOnce(PassRegistry &Registry) {
>     > -  const char *Name = "Hexagon DAG->DAG Pattern Instruction
>     Selection";
>     > -  PassInfo *PI = new PassInfo(Name, "hexagon-isel",
>     > -                              &SelectionDAGISel::ID, nullptr,
>     false, false);
>     > -  Registry.registerPass(*PI, true);
>     > -}
>     > -
>     > -void llvm::initializeHexagonDAGToDAGISelPass(PassRegistry
>     &Registry) {
>     > -  CALL_ONCE_INITIALIZATION(initializePassOnce)
>     > -}
>     > -
>     > -
>     >  // Intrinsics that return a a predicate.
>     >  static bool doesIntrinsicReturnPredicate(unsigned ID) {
>     >    switch (ID) {
>     >
>     > Modified: llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
>     > URL:
>     http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp?rev=271650&r1=271649&r2=271650&view=diff
>     >
>     ==============================================================================
>     > --- llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp (original)
>     > +++ llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp Fri Jun  3
>     05:13:31 2016
>     > @@ -59,10 +59,6 @@ static cl::opt<bool> EnableBranchHint(
>     >      cl::desc("Enable static hinting of branches on ppc"),
>     >      cl::Hidden);
>     >
>     > -namespace llvm {
>     > -  void initializePPCDAGToDAGISelPass(PassRegistry&);
>     > -}
>     > -
>     >  namespace {
>     >
>     //===--------------------------------------------------------------------===//
>     >    /// PPCDAGToDAGISel - PPC specific code to select PPC machine
>     > @@ -75,9 +71,7 @@ namespace {
>     >      unsigned GlobalBaseReg;
>     >    public:
>     >      explicit PPCDAGToDAGISel(PPCTargetMachine &tm)
>     > -        : SelectionDAGISel(tm), TM(tm) {
>     > -
>     initializePPCDAGToDAGISelPass(*PassRegistry::getPassRegistry());
>     > -    }
>     > +        : SelectionDAGISel(tm), TM(tm) {}
>     >
>     >      bool runOnMachineFunction(MachineFunction &MF) override {
>     >        // Make sure we re-emit a set of the global base reg if
>     necessary
>     > @@ -4431,14 +4425,3 @@ void PPCDAGToDAGISel::PeepholePPC64() {
>     >  FunctionPass *llvm::createPPCISelDag(PPCTargetMachine &TM) {
>     >    return new PPCDAGToDAGISel(TM);
>     >  }
>     > -
>     > -static void initializePassOnce(PassRegistry &Registry) {
>     > -  const char *Name = "PowerPC DAG->DAG Pattern Instruction
>     Selection";
>     > -  PassInfo *PI = new PassInfo(Name, "ppc-codegen",
>     &SelectionDAGISel::ID,
>     > -                              nullptr, false, false);
>     > -  Registry.registerPass(*PI, true);
>     > -}
>     > -
>     > -void llvm::initializePPCDAGToDAGISelPass(PassRegistry &Registry) {
>     > -  CALL_ONCE_INITIALIZATION(initializePassOnce);
>     > -}
>     >
>     >
>     > _______________________________________________
>     > llvm-commits mailing list
>     > llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>     > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>     >
>
>
>     --
>     Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
>     hosted by The Linux Foundation
>     _______________________________________________
>     llvm-commits mailing list
>     llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation


More information about the llvm-commits mailing list