Skip to content
  1. Mar 10, 2014
  2. Feb 06, 2014
  3. Jan 22, 2014
  4. Aug 16, 2013
    • Daniel Dunbar's avatar
      [tests] Cleanup initialization of test suffixes. · 9efbedfd
      Daniel Dunbar authored
       - Instead of setting the suffixes in a bunch of places, just set one master
         list in the top-level config. We now only modify the suffix list in a few
         suites that have one particular unique suffix (.ml, .mc, .yaml, .td, .py).
      
       - Aside from removing the need for a bunch of lit.local.cfg files, this enables
         4 tests that were inadvertently being skipped (one in
         Transforms/BranchFolding, a .s file each in DebugInfo/AArch64 and
         CodeGen/PowerPC, and one in CodeGen/SI which is now failing and has been
         XFAILED).
      
       - This commit also fixes a bunch of config files to use config.root instead of
         older copy-pasted code.
      
      llvm-svn: 188513
      9efbedfd
  5. Jul 14, 2013
    • Stephen Lin's avatar
      Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. · c1c7a130
      Stephen Lin authored
      This update was done with the following bash script:
      
        find test/Transforms -name "*.ll" | \
        while read NAME; do
          echo "$NAME"
          if ! grep -q "^; *RUN: *llc" $NAME; then
            TEMP=`mktemp -t temp`
            cp $NAME $TEMP
            sed -n "s/^define [^@]*@\([A-Za-z0-9_]*\)(.*$/\1/p" < $NAME | \
            while read FUNC; do
              sed -i '' "s/;\(.*\)\([A-Za-z0-9_]*\):\( *\)@$FUNC\([( ]*\)\$/;\1\2-LABEL:\3@$FUNC(/g" $TEMP
            done
            mv $TEMP $NAME
          fi
        done
      
      llvm-svn: 186268
      c1c7a130
  6. Jun 08, 2013
    • Shuxin Yang's avatar
      Fix a potential bug in r183584. · 140d592d
      Shuxin Yang authored
        r183584 tries to derive some info from the code *AFTER* a call and apply
      these derived info to the code *BEFORE* the call, which is not always safe
      as the call in question may never return, and in this case, the derived
      info is invalid.
        
        Thank Duncan for pointing out this potential bug.
      
      rdar://14073661 
      
      llvm-svn: 183606
      140d592d
    • Shuxin Yang's avatar
      Fix an assertion in MemCpyOpt pass. · bd254f26
      Shuxin Yang authored
        The MemCpyOpt pass is capable of optimizing:
            callee(&S); copy N bytes from S to D.
          into:
            callee(&D);
      subject to some legality constraints. 
      
        Assertion is triggered when the compiler tries to evalute "sizeof(typeof(D))",
      while D is an opaque-typed, 'sret' formal argument of function being compiled.
      i.e. the signature of the func being compiled is something like this:
        T caller(...,%opaque* noalias nocapture sret %D, ...)
      
        The fix is that when come across such situation, instead of calling some
      utility functions to get the size of D's type (which will crash), we simply
      assume D has at least N bytes as implified by the copy-instruction.
      
      rdar://14073661 
      
      llvm-svn: 183584
      bd254f26
  7. Feb 22, 2013
  8. Feb 15, 2013
  9. Feb 01, 2013
    • Bill Wendling's avatar
      Remove the AttrBuilder form of the Attribute::get creators. · 1c7cc8ae
      Bill Wendling authored
      The AttrBuilder is for building a collection of attributes. The Attribute object
      holds only one attribute. So it's not really useful for the Attribute object to
      have a creator which takes an AttrBuilder.
      
      This has two fallouts:
      
      1. The AttrBuilder no longer holds its internal attributes in a bit-mask form.
      2. The attributes are now ordered alphabetically (hence why the tests have changed).
      
      llvm-svn: 174110
      1c7cc8ae
  10. Oct 04, 2012
  11. Sep 13, 2012
  12. Jul 02, 2012
    • Chandler Carruth's avatar
      Fix the remaining TCL-style quotes found in the testsuite. This is · ff123d5c
      Chandler Carruth authored
      another mechanical change accomplished though the power of terrible Perl
      scripts.
      
      I have manually switched some "s to 's to make escaping simpler.
      
      While I started this to fix tests that aren't run in all configurations,
      the massive number of tests is due to a really frustrating fragility of
      our testing infrastructure: things like 'grep -v', 'not grep', and
      'expected failures' can mask broken tests all too easily.
      
      Essentially, I'm deeply disturbed that I can change the testsuite so
      radically without causing any change in results for most platforms. =/
      
      llvm-svn: 159547
      ff123d5c
  13. May 14, 2012
  14. Feb 16, 2012
  15. Dec 06, 2011
  16. Dec 05, 2011
  17. Oct 23, 2011
  18. Oct 16, 2011
  19. Aug 18, 2011
  20. Jul 09, 2011
    • Chris Lattner's avatar
      Land the long talked about "type system rewrite" patch. This · b1ed91f3
      Chris Lattner authored
      patch brings numerous advantages to LLVM.  One way to look at it
      is through diffstat:
       109 files changed, 3005 insertions(+), 5906 deletions(-)
      
      Removing almost 3K lines of code is a good thing.  Other advantages
      include:
      
      1. Value::getType() is a simple load that can be CSE'd, not a mutating
         union-find operation.
      2. Types a uniqued and never move once created, defining away PATypeHolder.
      3. Structs can be "named" now, and their name is part of the identity that
         uniques them.  This means that the compiler doesn't merge them structurally
         which makes the IR much less confusing.
      4. Now that there is no way to get a cycle in a type graph without a named
         struct type, "upreferences" go away.
      5. Type refinement is completely gone, which should make LTO much MUCH faster
         in some common cases with C++ code.
      6. Types are now generally immutable, so we can use "Type *" instead 
         "const Type *" everywhere.
      
      Downsides of this patch are that it removes some functions from the C API,
      so people using those will have to upgrade to (not yet added) new API.  
      "LLVM 3.0" is the right time to do this.
      
      There are still some cleanups pending after this, this patch is large enough
      as-is.
      
      llvm-svn: 134829
      b1ed91f3
  21. Jun 18, 2011
  22. Jun 17, 2011
  23. Jun 02, 2011
  24. May 23, 2011
    • Chris Lattner's avatar
      Teach valuetracking that byval arguments with a specified alignment are · 83791ced
      Chris Lattner authored
      aligned.
      
      Teach memcpyopt to not give up all hope when confonted with an underaligned
      memcpy feeding an overaligned byval.  If the *source* of the memcpy can be
      determined to be adequeately aligned, or if it can be forced to be, we can
      eliminate the memcpy.
      
      This addresses PR9794.  We now compile the example into:
      
      define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp {
      entry:
        %call = call i32 @g(%struct.p* byval align 8 %q) nounwind
        ret i32 %call
      }
      
      in both x86-64 and x86-32 mode.  We still don't get a tailcall though,
      because tailcalls apparently can't handle byval.
      
      llvm-svn: 131884
      83791ced
  25. Jan 21, 2011
  26. Jan 12, 2011
  27. Jan 10, 2011
  28. Jan 08, 2011
Loading