Skip to content
  1. Mar 08, 2012
  2. Mar 07, 2012
    • Benjamin Kramer's avatar
      Copy the right amount of elements. · 22842f89
      Benjamin Kramer authored
      llvm-svn: 152254
      22842f89
    • Benjamin Kramer's avatar
      SmallPtrSet: Copy all the elements when swapping, not just numelements. · 6e8d4b8e
      Benjamin Kramer authored
      This fixes a build failure in webkit. Copying all elements shouldn't be
      necessary, I'll look out for a better fix soon.
      
      llvm-svn: 152252
      6e8d4b8e
    • Chad Rosier's avatar
      [fast-isel] ARMEmitCmp generates FMSTAT, which transfers the floating-point · 377f1f2d
      Chad Rosier authored
      condition flags to CPSR.  This allows us to simplify SelectCmp.
      Patch by Zonr Chang <zonr.xchg@gmail.com>.
      
      llvm-svn: 152243
      377f1f2d
    • Rafael Espindola's avatar
      Use llvm-mc instead of llc. Patch by Jack Carter. · bdd12587
      Rafael Espindola authored
      llvm-svn: 152242
      bdd12587
    • Benjamin Kramer's avatar
      configure: Don't require a perl interpreter to be present, LLVM's buildsystem... · e815db61
      Benjamin Kramer authored
      configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore.
      
      llvm-svn: 152234
      e815db61
    • Chad Rosier's avatar
      Revert r152202 as it's causing internal buildbot failures. · 3048107b
      Chad Rosier authored
      Original commit message:
      Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect 
      all 16-bit string table offsets. Also make sure the string to offset table 
      string is not larger than 65536 characters since larger string literals aren't 
      portable.
      
      llvm-svn: 152233
      3048107b
    • Jakob Stoklund Olesen's avatar
      Fix infinite loop in nested multiclasses. · aa0f752f
      Jakob Stoklund Olesen authored
      Patch by Michael Liao!
      
      llvm-svn: 152232
      aa0f752f
    • Chandler Carruth's avatar
      Try a completely different approach to this type trait to appease older · 7c253fe4
      Chandler Carruth authored
      compilers. It seems that GCC 4.3 (and likely older) simply aren't going
      to do SFINAE on non-type template parameters the way Clang and modern
      GCCs do...
      
      Now we detect the implicit conversion to an integer type, and then
      blacklist classes, pointers, and floating point types. This seems to
      work well enough, and I'm hopeful will return the bots to life.
      
      llvm-svn: 152227
      7c253fe4
    • Chandler Carruth's avatar
      Attempt #2 at appeasing GCC 4.3. This compiler really doesn't like these · 505cb51e
      Chandler Carruth authored
      traits.
      
      With this change, the pattern used here is *extremely* close to the
      pattern used elsewhere in the file, so I'm hoping it survives the
      build-bots.
      
      llvm-svn: 152225
      505cb51e
    • Chandler Carruth's avatar
      Try to clarify this comment some. · 636ee38a
      Chandler Carruth authored
      llvm-svn: 152221
      636ee38a
    • Chandler Carruth's avatar
      Switch the is_integral_or_enum trait machinery to use an explicit · ddbe7ee8
      Chandler Carruth authored
      template argument and an *implicit* conversion from '0' to a null
      pointer. For some bizarre reason, GCC 4.3.2 thinks that the cast to
      '(T*)' is invalid inside of an enumerator's value... which it isn't but
      whatever. ;] This pattern is used elsewhere in the type_traits header
      and so hopefully will survive the wrath of the build bots.
      
      llvm-svn: 152220
      ddbe7ee8
    • Chandler Carruth's avatar
      What's better than fixing and simplifying broken hash functions? · fba07065
      Chandler Carruth authored
      Deleting them because they aren't used. =D
      
      Yell if you need these, I'm happy to instead replace them with nice uses
      of the new infrastructure.
      
      llvm-svn: 152219
      fba07065
    • Chandler Carruth's avatar
      Remove another outbreak of customized (and completely broken) hashing. · 962152ca
      Chandler Carruth authored
      This one is particularly annoying because the hashing algorithm is
      highly specialized, with a strange "equivalence" definition that subsets
      the fields involved.
      
      Still, this looks at the exact same set of data as the old code, but
      without bitwise or-ing over parts of it and other mixing badness. No
      functionality changed here. I've left a substantial fixme about the fact
      that there is a cleaner and more principled way to do this, but it
      requires making the equality definition actual stable for particular
      types...
      
      llvm-svn: 152218
      962152ca
    • Chandler Carruth's avatar
      Add support to the hashing infrastructure for automatically hashing both · 2bd66afa
      Chandler Carruth authored
      integral and enumeration types. This is accomplished with a bit of
      template type trait magic. Thanks to Richard Smith for the core idea
      here to detect viable types by detecting the set of types which can be
      default constructed in a template parameter.
      
      This is used (in conjunction with a system for detecting nullptr_t
      should it exist) to provide an is_integral_or_enum type trait that
      doesn't need a whitelist or direct compiler support.
      
      With this, the hashing is extended to the more general facility. This
      will be used in a subsequent commit to hashing more things, but I wanted
      to make sure the type trait magic went through the build bots separately
      in case other compilers don't like this formulation.
      
      llvm-svn: 152217
      2bd66afa
    • Bill Wendling's avatar
      Where the BranchFolding pass removes a branch then adds another better branch, · 7c5dcb6c
      Bill Wendling authored
      the DebugLoc information can be maintained throughout by grabbing the DebugLoc
      before the RemoveBranch and then passing the result to the InsertBranch.
      Patch by Andrew Stanford-Jason!
      
      llvm-svn: 152212
      7c5dcb6c
    • Andrew Trick's avatar
      Fix cmake · 1a1b54a2
      Andrew Trick authored
      llvm-svn: 152210
      1a1b54a2
    • Andrew Trick's avatar
      comment · f9fa8afd
      Andrew Trick authored
      llvm-svn: 152209
      f9fa8afd
    • Andrew Trick's avatar
      misched preparation: clarify ScheduleDAG and ScheduleDAGInstrs roles. · 60cf03e7
      Andrew Trick authored
      ScheduleDAG is responsible for the DAG: SUnits and SDeps. It provides target hooks for latency computation.
      
      ScheduleDAGInstrs extends ScheduleDAG and defines the current scheduling region in terms of MachineInstr iterators. It has access to the target's scheduling itinerary data. ScheduleDAGInstrs provides the logic for building the ScheduleDAG for the sequence of MachineInstrs in the current region. Target's can implement highly custom schedulers by extending this class.
      
      ScheduleDAGPostRATDList provides the driver and diagnostics for current postRA scheduling. It maintains a current Sequence of scheduled machine instructions and logic for splicing them into the block. During scheduling, it uses the ScheduleHazardRecognizer provided by the target.
      
      Specific changes:
      - Removed driver code from ScheduleDAG. clearDAG is the only interface needed.
      
      - Added enterRegion/exitRegion hooks to ScheduleDAGInstrs to delimit the scope of each scheduling region and associated DAG. They should be used to setup and cleanup any region-specific state in addition to the DAG itself. This is necessary because we reuse the same ScheduleDAG object for the entire function. The target may extend these hooks to do things at regions boundaries, like bundle terminators. The hooks are called even if we decide not to schedule the region. So all instructions in a block are "covered" by these calls.
      
      - Added ScheduleDAGInstrs::begin()/end() public API.
      
      - Moved Sequence into the driver layer, which is specific to the scheduling algorithm.
      
      llvm-svn: 152208
      60cf03e7
Loading