Skip to content
  1. Oct 11, 2012
  2. Oct 10, 2012
    • Micah Villmow's avatar
      Add in support for expansion of all of the comparison operations to the... · 0242b9b5
      Micah Villmow authored
      Add in support for expansion of all of the comparison operations to the absolute minimum required set. This allows a backend to expand any arbitrary set of comparisons as long as a minimum set is supported.
      The minimum set of required instructions is ISD::AND, ISD::OR, ISD::SETO(or ISD::SETOEQ) and ISD::SETUO(or ISD::SETUNE). Everything is expanded into one of two patterns:
      Pattern 1: (LHS CC1 RHS) Opc (LHS CC2 RHS)
      Pattern 2: (LHS CC1 LHS) Opc (RHS CC2 RHS)
      
      llvm-svn: 165655
      0242b9b5
    • Michael Liao's avatar
      Add alternative support for FP_ROUND from v2f32 to v2f64 · effae0c8
      Michael Liao authored
      - Due to the current matching vector elements constraints in ISD::FP_EXTEND,
        rounding from v2f32 to v2f64 is scalarized. Add a customized v2f32 widening
        to convert it into a target-specific X86ISD::VFPEXT to work around this
        constraints. This patch also reverts a previous attempt to fix this issue by
        recovering the scalarized ISD::FP_EXTEND pattern and thus significantly
        reduces the overhead of supporting non-power-2 vector FP extend.
      
      llvm-svn: 165625
      effae0c8
    • Stepan Dyatkovskiy's avatar
      Issue description: · f13dbb8e
      Stepan Dyatkovskiy authored
      SchedulerDAGInstrs::buildSchedGraph ignores dependencies between FixedStack
      objects and byval parameters. So loading byval parameters from stack may be
      inserted *before* it will be stored, since these operations are treated as
      independent.
      
      Fix:
      Currently ARMTargetLowering::LowerFormalArguments saves byval registers with
      FixedStack MachinePointerInfo. To fix the problem we need to store byval
      registers with MachinePointerInfo referenced to first the "byval" parameter.
      
      Also commit adds two new fields to the InputArg structure: Function's argument
      index and InputArg's part offset in bytes relative to the start position of
      Function's argument. E.g.: If function's argument is 128 bit width and it was
      splitted onto 32 bit regs, then we got 4 InputArg structs with same arg index,
      but different offset values. 
      
      llvm-svn: 165616
      f13dbb8e
    • Bill Wendling's avatar
      Remove the final bits of Attributes being declared in the Attribute · bbcdf4e2
      Bill Wendling authored
      namespace. Use the attribute's enum value instead. No functionality change
      intended.
      
      llvm-svn: 165610
      bbcdf4e2
    • Lang Hames's avatar
      My earlier "fix" for PBQP (see r165201) was incorrect. The real issue was that · 05fee08d
      Lang Hames authored
      checkRegMaskInterference only initializes the bitmask on the first interference.
      
      This fixes PR14027 and (re)fixes PR13945.
      
      llvm-svn: 165608
      05fee08d
    • Andrew Trick's avatar
      misched: fall-back to a target hook for instr bundles. · c334bd45
      Andrew Trick authored
      llvm-svn: 165606
      c334bd45
    • Andrew Trick's avatar
      misched: Use the TargetSchedModel interface wherever possible. · dd79f0fc
      Andrew Trick authored
      Allows the new machine model to be used for NumMicroOps and OutputLatency.
      
      Allows the HazardRecognizer to be disabled along with itineraries.
      
      llvm-svn: 165603
      dd79f0fc
    • Andrew Trick's avatar
      misched: Add computeInstrLatency to TargetSchedModel. · 780fae8c
      Andrew Trick authored
      llvm-svn: 165566
      780fae8c
    • Andrew Trick's avatar
      misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for... · cfcf5202
      Andrew Trick authored
      misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for external users of TargetSchedule.
      
      llvm-svn: 165564
      cfcf5202
    • Andrew Trick's avatar
      misched: Remove LoopDependencies heuristic. · caf1dc78
      Andrew Trick authored
      This wasn't contributing anything significant to postRA heuristics except compile time (by my measurements) and will be replaced by a more general heuristic for cross-region dependencies within the scheduler itself.
      
      llvm-svn: 165563
      caf1dc78
  3. Oct 09, 2012
    • Bill Wendling's avatar
      Use the attribute enums to query if a parameter has an attribute. · 8ccd6ca1
      Bill Wendling authored
      llvm-svn: 165550
      8ccd6ca1
    • Micah Villmow's avatar
      Add in the first step of the multiple pointer support. This adds in support to... · 89021e47
      Micah Villmow authored
      Add in the first step of the multiple pointer support. This adds in support to the data layout for specifying a per address space pointer size.
      The next step is to update the optimizers to allow them to optimize the different address spaces with this information.
      
      llvm-svn: 165505
      89021e47
    • Bill Wendling's avatar
      Create enums for the different attributes. · c9b22d73
      Bill Wendling authored
      We use the enums to query whether an Attributes object has that attribute. The
      opaque layer is responsible for knowing where that specific attribute is stored.
      
      llvm-svn: 165488
      c9b22d73
    • Eric Christopher's avatar
      Fix up comment to be more clear. · 28611368
      Eric Christopher authored
      llvm-svn: 165463
      28611368
    • Nadav Rotem's avatar
      · 35315fea
      Nadav Rotem authored
      Refactor the AddrMode class out of TLI to its own header file.
      This class is used by LSR and a number of places in the codegen.
      This is the first step in de-coupling LSR from TLI, and creating
      a new interface in between them.
      
      llvm-svn: 165455
      35315fea
    • Jakob Stoklund Olesen's avatar
      Don't crash on extra evil irreducible control flow. · 9d1173a8
      Jakob Stoklund Olesen authored
      When the CFG contains a loop with multiple entry blocks, the traces
      computed by MachineTraceMetrics don't always have the same nice
      properties. Loop back-edges are normally excluded from traces, but
      MachineLoopInfo doesn't recognize loops with multiple entry blocks, so
      those back-edges may be included.
      
      Avoid asserting when that happens by adding an isEarlierInSameTrace()
      function that accurately determines if a dominating block is part of the
      same trace AND is above the currrent block in the trace.
      
      llvm-svn: 165434
      9d1173a8
  4. Oct 08, 2012
  5. Oct 07, 2012
  6. Oct 05, 2012
  7. Oct 04, 2012
  8. Oct 03, 2012
Loading