Skip to content
  1. Jul 30, 2013
    • Saleem Abdulrasool's avatar
      [ARM] check bitwidth in PerformORCombine · 0c2ee5a2
      Saleem Abdulrasool authored
      
      
      When simplifying a (or (and B A) (and C ~A)) to a (VBSL A B C) ensure that the
      bitwidth of the second operands to both ands match before comparing the negation
      of the values.
      
      Split the check of the value of the second operands to the ands.  Move the cast
      and variable declaration slightly higher to make it slightly easier to follow.
      
      Bug-Id: 16700
      Signed-off-by: default avatarSaleem Abdulrasool <compnerd@compnerd.org>
      llvm-svn: 187404
      0c2ee5a2
    • Venkatraman Govindaraju's avatar
      [Sparc] Use call's debugloc for the unimp instruction. · fdcc498a
      Venkatraman Govindaraju authored
      llvm-svn: 187402
      fdcc498a
    • Bill Schmidt's avatar
      [PowerPC] Skeletal FastISel support for 64-bit PowerPC ELF. · 0cf702fa
      Bill Schmidt authored
      This is the first of many upcoming patches for PowerPC fast
      instruction selection support.  This patch implements the minimum
      necessary for a functional (but extremely limited) FastISel pass.  It
      allows the table-generated portions of the selector to be created and
      used, but in most cases selection will fall back to the DAG selector.
      None of the block terminator instructions are implemented yet, and
      most interesting instructions require some special handling.
      Therefore there aren't any new test cases with this patch.  There will
      be quite a few tests coming with future patches.
      
      This patch adds the make/CMake support for the new code (including
      tablegen -gen-fast-isel) and creates the FastISel object for PPC64 ELF
      only.  It instantiates the necessary virtual functions
      (TargetSelectInstruction, TargetMaterializeConstant,
      TargetMaterializeAlloca, tryToFoldLoadIntoMI, and FastLowerArguments),
      but of these, only TargetMaterializeConstant contains any useful
      implementation.  This is present since the table-generated code
      requires the ability to materialize integer constants for some
      instructions.
      
      This patch has been tested by building and running the
      projects/test-suite code with -O0.  All tests passed with the
      exception of a couple of long-running tests that time out using -O0
      code generation.
      
      llvm-svn: 187399
      0cf702fa
    • Quentin Colombet's avatar
      [R600] Replicate old DAGCombiner behavior in target specific DAG combine. · e2e0548d
      Quentin Colombet authored
      build_vector is lowered to REG_SEQUENCE, which is something the register
      allocator does a good job at optimizing.
      
      llvm-svn: 187397
      e2e0548d
  2. Jul 29, 2013
  3. Jul 28, 2013
  4. Jul 27, 2013
    • Chandler Carruth's avatar
      Create a constant pool symbol for the GOT in the ARMCGBR the same way we · 26ad41ed
      Chandler Carruth authored
      do in the SDag when lowering references to the GOT: use
      ARMConstantPoolSymbol rather than creating a dummy global variable. The
      computation of the alignment still feels weird (it uses IR types and
      datalayout) but it preserves the exact previous behavior. This change
      fixes the memory leak of the global variable detected on the valgrind
      leak checking bot.
      
      Thanks to Benjamin Kramer for pointing me at ARMConstantPoolSymbol to
      handle this use case.
      
      llvm-svn: 187303
      26ad41ed
    • Chandler Carruth's avatar
      Fix yet another memory leak found by the vg-leak bot. Folks (including · 1c82d331
      Chandler Carruth authored
      me) should start watching this bot more as its catching lots of bugs.
      
      The fix here is to not construct the global if we aren't going to need
      it. That's cheaper anyways, and globals have highly predictable types in
      practice. I've added an assert to catch skew between our manual testing
      of the type and the actual type just for paranoia's sake.
      
      Note that this pattern is actually fine in most globals because when you
      build a global with a module it automatically is moved to be owned by
      that module. But here, we're in isel and don't really want to do that.
      The solution of not creating a global is simpler anyways.
      
      llvm-svn: 187302
      1c82d331
    • Chandler Carruth's avatar
      Fix a memory leak in the hexagon scheduler. We call initialize here more · c18e39ca
      Chandler Carruth authored
      than once, and the second time through we leaked memory. Found thanks to
      the vg-leak bot, but I can't locally reproduce it with valgrind. The
      debugger confirms that it is in fact leaking here.
      
      This whole code is totally gross. Why is initialize being called on each
      runOnFunction??? Why aren't these OwningPtr<>s, and why aren't their
      lifetimes better defined? Anyways, this is just a surgical change to
      help out the leak checking bots.
      
      llvm-svn: 187299
      c18e39ca
    • Tom Stellard's avatar
      SimplifyCFG: Use parallel-and and parallel-or mode to consolidate branch conditions · 8b1e021e
      Tom Stellard authored
      Merge consecutive if-regions if they contain identical statements.
      Both transformations reduce number of branches.  The transformation
      is guarded by a target-hook, and is currently enabled only for +R600,
      but the correctness has been tested on X86 target using a variety of
      CPU benchmarks.
      
      Patch by: Mei Ye
      
      llvm-svn: 187278
      8b1e021e
    • Rafael Espindola's avatar
      Revert "[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc." · 05b5a46e
      Rafael Espindola authored
      This reverts commit r187248. It broke many bots.
      
      llvm-svn: 187254
      05b5a46e
  5. Jul 26, 2013
  6. Jul 25, 2013
Loading