Skip to content
  1. Oct 15, 2012
    • Micah Villmow's avatar
      Resubmit the changes to llvm core to update the functions to support different... · 4bb926d9
      Micah Villmow authored
      Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis.
      
      llvm-svn: 165941
      4bb926d9
    • Adhemerval Zanella's avatar
      PowerPC: add EmitTCEntry class for TOC creation · ef206f19
      Adhemerval Zanella authored
      This patch replaces the EmitRawText by a EmitTCEntry class (specialized for
      each Streamer) in PowerPC64 TOC entry creation.
      
      llvm-svn: 165940
      ef206f19
    • Kostya Serebryany's avatar
      [asan] fix a test · 19ab3d1f
      Kostya Serebryany authored
      llvm-svn: 165938
      19ab3d1f
    • Kostya Serebryany's avatar
      [asan] make AddressSanitizer to be a FunctionPass instead of ModulePass. This... · b0e2506d
      Kostya Serebryany authored
      [asan] make AddressSanitizer to be a FunctionPass instead of ModulePass. This will simplify chaining other FunctionPasses with asan. Also some minor cleanup 
      
      llvm-svn: 165936
      b0e2506d
    • Chandler Carruth's avatar
      Update the memcpy rewriting to fully support widened int rewriting. This · 49c8eea3
      Chandler Carruth authored
      includes extracting ints for copying elsewhere and inserting ints when
      copying into the alloca. This should fix the CanSROA assertion coming
      out of Clang's regression test suite.
      
      llvm-svn: 165931
      49c8eea3
    • Chandler Carruth's avatar
      Follow-up fix to r165928: handle memset rewriting for widened integers, · 9d966a20
      Chandler Carruth authored
      and generally clean up the memset handling. It had rotted a bit as the
      other rewriting logic got polished more.
      
      llvm-svn: 165930
      9d966a20
    • Silviu Baranga's avatar
      Fixed PR13938: the ARM backend was crashing because it couldn't select a... · b1409700
      Silviu Baranga authored
      Fixed PR13938: the ARM backend was crashing because it couldn't select a VDUPLANE node with the vector input size different from the output size. This was bacause the BUILD_VECTOR lowering code didn't check that the size of the input vector was correct for using VDUPLANE.
      
      llvm-svn: 165929
      b1409700
    • Chandler Carruth's avatar
      First major step toward addressing PR14059. This teaches SROA to handle · 435c4e07
      Chandler Carruth authored
      cases where we have partial integer loads and stores to an otherwise
      promotable alloca to widen[1] those loads and stores to cover the entire
      alloca and bitcast them into the appropriate type such that promotion
      can proceed.
      
      These partial loads and stores stem from an annoying confluence of ARM's
      calling convention and ABI lowering and the FCA pre-splitting which
      takes place in SROA. Clang lowers a { double, double } in-register
      function argument as a [4 x i32] function argument to ensure it is
      placed into integer 32-bit registers (a really unnerving implicit
      contract between Clang and the ARM backend I would add). This results in
      a FCA load of [4 x i32]* from the { double, double } alloca, and SROA
      decomposes this into a sequence of i32 loads and stores. Inlining
      proceeds, code gets folded, but at the end of the day, we still have i32
      stores to the low and high halves of a double alloca. Widening these to
      be i64 operations, and bitcasting them to double prior to loading or
      storing allows promotion to proceed for these allocas.
      
      I looked quite a bit changing the IR which Clang produces for this case
      to be more friendly, but small changes seem unlikely to help. I think
      the best representation we could use currently would be to pass 4 i32
      arguments thereby avoiding any FCAs, but that would still require this
      fix. It seems like it might eventually be nice to somehow encode the ABI
      register selection choices outside of the parameter type system so that
      the parameter can be a { double, double }, but the CC register
      annotations indicate that this should be passed via 4 integer registers.
      
      This patch does not address the second problem in PR14059, which is the
      reverse: when a struct alloca is loaded as a *larger* single integer.
      
      This patch also does not address some of the code quality issues with
      the FCA-splitting. Those don't actually impede any optimizations really,
      but they're on my list to clean up.
      
      [1]: Pedantic footnote: for those concerned about memory model issues
      here, this is safe. For the alloca to be promotable, it cannot escape or
      have any use of its address that could allow these loads or stores to be
      racing. Thus, widening is always safe.
      
      llvm-svn: 165928
      435c4e07
    • Chandler Carruth's avatar
      Hoist the canConvertValue predicate and the convertValue transform out · aa6afbb8
      Chandler Carruth authored
      into static helper functions. They're really quite generic and are going
      to be needed elsewhere shortly.
      
      llvm-svn: 165927
      aa6afbb8
    • Bill Wendling's avatar
      Add an enum for the return and function indexes into the AttrListPtr object.... · fbd38fe2
      Bill Wendling authored
      Add an enum for the return and function indexes into the AttrListPtr object. This gets rid of some magic numbers.
      
      llvm-svn: 165924
      fbd38fe2
    • Bill Wendling's avatar
    • Bill Wendling's avatar
      Supply a default 'operator=' method. · 4ec54eee
      Bill Wendling authored
      llvm-svn: 165922
      4ec54eee
    • Bill Wendling's avatar
    • Bill Wendling's avatar
      Attributes Rewrite · d079a446
      Bill Wendling authored
      Convert the internal representation of the Attributes class into a pointer to an
      opaque object that's uniqued by and stored in the LLVMContext object. The
      Attributes class then becomes a thin wrapper around this opaque
      object. Eventually, the internal representation will be expanded to include
      attributes that represent code generation options, etc.
      
      llvm-svn: 165917
      d079a446
    • Meador Inge's avatar
      instcombine: Migrate strcmp and strncmp optimizations · 40b6fac3
      Meador Inge authored
      This patch migrates the strcmp and strncmp optimizations from the
      simplify-libcalls pass into the instcombine library call simplifier.
      
      llvm-svn: 165915
      40b6fac3
  2. Oct 14, 2012
  3. Oct 13, 2012
Loading