Skip to content
  1. Feb 28, 2015
  2. Feb 27, 2015
    • David Majnemer's avatar
      llvm-vtabledump: Update field with a better name · 86ee1737
      David Majnemer authored
      llvm-svn: 230804
      86ee1737
    • Bill Schmidt's avatar
      Revert test case until it can be fixed · bb9460a3
      Bill Schmidt authored
      llvm-svn: 230803
      bb9460a3
    • Dan Albert's avatar
      Add .eh_frame_hdr search to Linux unwinder. · 198d366f
      Dan Albert authored
      This improves the performance of unwinding on DWARF based targets. The
      32-bit x86 support for scanning the full eh_frame
      (CFI_Parser::findFDE) apparently does not work (at least not on
      Linux). Since the eh_frame_hdr code delegates to that, this still
      doesn't work for x86 Linux, but it has been tested on x86_64 Linux and
      aarch64 Android.
      
      llvm-svn: 230802
      198d366f
    • Bill Schmidt's avatar
      [PowerPC] Fix PR22711 - Misaligned .toc section · e3959eb5
      Bill Schmidt authored
      Straightforward patch to emit an alignment directive when emitting a
      TOC entry.  The test case was generated from the test in PR22711 that
      demonstrated a misaligned .toc section.  The object code is run
      through llvm-readobj to verify that the correct alignment has been
      applied to the .toc section.
      
      Thanks to Ulrich Weigand for running down where the fix was needed.
      
      llvm-svn: 230801
      e3959eb5
    • Johannes Doerfert's avatar
      [Fix] Two tests that broke during the last changes · 6982fa4b
      Johannes Doerfert authored
      llvm-svn: 230800
      6982fa4b
    • Chaoren Lin's avatar
      Convert TestWatchLocation to use C++11 library instead of pthread. · dd62b2ef
      Chaoren Lin authored
      Reviewers: clayborg, zturner, ki.stfu, abidh
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D7950
      
      llvm-svn: 230799
      dd62b2ef
    • Benjamin Kramer's avatar
      Reduce double set lookups. · 4e3b903a
      Benjamin Kramer authored
      llvm-svn: 230798
      4e3b903a
    • David Blaikie's avatar
      Fix test I missed · 47d67839
      David Blaikie authored
      This was & is failing at ToT, but now it's failing for the original
      reason, not because the IR can't be parsed.
      
      llvm-svn: 230797
      47d67839
    • David Blaikie's avatar
      Update Polly tests to handle explicitly typed load changes in LLVM. · c94eca05
      David Blaikie authored
      llvm-svn: 230796
      c94eca05
    • David Blaikie's avatar
      Update Clang tests to handle explicitly typed load changes in LLVM. · a953f282
      David Blaikie authored
      llvm-svn: 230795
      a953f282
    • David Blaikie's avatar
      [opaque pointer type] Add textual IR support for explicit type parameter to load instruction · a79ac14f
      David Blaikie authored
      Essentially the same as the GEP change in r230786.
      
      A similar migration script can be used to update test cases, though a few more
      test case improvements/changes were required this time around: (r229269-r229278)
      
      import fileinput
      import sys
      import re
      
      pat = re.compile(r"((?:=|:|^)\s*load (?:atomic )?(?:volatile )?(.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$)")
      
      for line in sys.stdin:
        sys.stdout.write(re.sub(pat, r"\1, \2\3*\4", line))
      
      Reviewers: rafael, dexonsmith, grosser
      
      Differential Revision: http://reviews.llvm.org/D7649
      
      llvm-svn: 230794
      a79ac14f
    • Charles Davis's avatar
      Target/X86: Never use the redzone for Win64 ABI functions. · 83687fb9
      Charles Davis authored
      Summary:
      Until now, we did this (among other things) based on whether or not the
      target was Windows. This is clearly wrong, not just for Win64 ABI functions
      on non-Windows, but for System V ABI functions on Windows, too. In this
      change, we make this decision based on the ABI the calling convention
      specifies instead.
      
      Reviewers: rnk
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D7953
      
      llvm-svn: 230793
      83687fb9
    • David Blaikie's avatar
    • Rui Ueyama's avatar
      PECOFF: Move a call of WinLinkDriver::parse from FileCOFF::doParse to FileCOFF::beforeLink · 400385c8
      Rui Ueyama authored
      In doParse, we shouldn't do anything that has side effects. That function may be
      called speculatively and possibly in parallel.
      
      We called WinLinkDriver::parse from doParse to parse a command line in a .drectve
      section. The parse function updates a linking context object, so it has many side
      effects. It was not safe to call that function from doParse. beforeLink is a
      function for a File object to do something that has side effects. Moving a call
      of WinLinkDriver::parse to there.
      
      llvm-svn: 230791
      400385c8
    • Johannes Doerfert's avatar
      Do some preparation even with scalar and phi modeling enabled · 50792005
      Johannes Doerfert authored
      llvm-svn: 230790
      50792005
    • Richard Smith's avatar
      [modules] Avoid the possibility of a redeclaration chain not being marked 'up · 78bea739
      Richard Smith authored
      to date' after it gets updated.
      
      llvm-svn: 230789
      78bea739
    • Hal Finkel's avatar
      [PowerPC] Use vector types for memcpy and friends (sometimes) · 5c3cacf5
      Hal Finkel authored
      When using Altivec, we can use vector loads and stores for aligned memcpy and
      friends. Starting with the P7 and VXS, we have reasonable unaligned vector
      stores. Starting with the P8, we have fast unaligned loads too.
      
      For QPX, we use vector loads are stores, but only for aligned memory accesses.
      
      llvm-svn: 230788
      5c3cacf5
    • Ilia K's avatar
      Fix FileSpec::GetPath to return null-terminated strings · 686b1fe6
      Ilia K authored
      Summary:
      Before this fix the FileSpec::GetPath() returned string which might be without '\0' at the end.
      It could have happened if the size of buffer for path was less than actual path.
      
      Test case:
      ```
      FileSpec test("/path/to/file", false);
      char buf[]="!!!!!!";
      test.GetPath(buf, 3);
      ```
      
      Before fix:
      ```
         233          FileSpec test("/path/to/file", false);
         234          char buf[]="!!!!!!";
         235          test.GetPath(buf, 3);
         236
      -> 237          if (core_file)
         238          {
         239              if (!core_file.Exists())
         240              {
      (lldb) print buf
      (char [7]) $0 = "/pa!!!"
      ```
      
      After fix:
      ```
         233          FileSpec test("/path/to/file", false);
         234          char buf[]="!!!!!!";
         235          test.GetPath(buf, 3);
         236
      -> 237          if (core_file)
         238          {
         239              if (!core_file.Exists())
         240              {
      (lldb) print buf
      (char [7]) $0 = "/p"
      ```
      
      Reviewers: zturner, abidh, clayborg
      
      Reviewed By: abidh, clayborg
      
      Subscribers: tberghammer, vharron, lldb-commits, clayborg, zturner, abidh
      
      Differential Revision: http://reviews.llvm.org/D7553
      
      llvm-svn: 230787
      686b1fe6
    • David Blaikie's avatar
      [opaque pointer type] Add textual IR support for explicit type parameter to... · 79e6c749
      David Blaikie authored
      [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction
      
      One of several parallel first steps to remove the target type of pointers,
      replacing them with a single opaque pointer type.
      
      This adds an explicit type parameter to the gep instruction so that when the
      first parameter becomes an opaque pointer type, the type to gep through is
      still available to the instructions.
      
      * This doesn't modify gep operators, only instructions (operators will be
        handled separately)
      
      * Textual IR changes only. Bitcode (including upgrade) and changing the
        in-memory representation will be in separate changes.
      
      * geps of vectors are transformed as:
          getelementptr <4 x float*> %x, ...
        ->getelementptr float, <4 x float*> %x, ...
        Then, once the opaque pointer type is introduced, this will ultimately look
        like:
          getelementptr float, <4 x ptr> %x
        with the unambiguous interpretation that it is a vector of pointers to float.
      
      * address spaces remain on the pointer, not the type:
          getelementptr float addrspace(1)* %x
        ->getelementptr float, float addrspace(1)* %x
        Then, eventually:
          getelementptr float, ptr addrspace(1) %x
      
      Importantly, the massive amount of test case churn has been automated by
      same crappy python code. I had to manually update a few test cases that
      wouldn't fit the script's model (r228970,r229196,r229197,r229198). The
      python script just massages stdin and writes the result to stdout, I
      then wrapped that in a shell script to handle replacing files, then
      using the usual find+xargs to migrate all the files.
      
      update.py:
      import fileinput
      import sys
      import re
      
      ibrep = re.compile(r"(^.*?[^%\w]getelementptr inbounds )(((?:<\d* x )?)(.*?)(| addrspace\(\d\)) *\*(|>)(?:$| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$))")
      normrep = re.compile(       r"(^.*?[^%\w]getelementptr )(((?:<\d* x )?)(.*?)(| addrspace\(\d\)) *\*(|>)(?:$| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$))")
      
      def conv(match, line):
        if not match:
          return line
        line = match.groups()[0]
        if len(match.groups()[5]) == 0:
          line += match.groups()[2]
        line += match.groups()[3]
        line += ", "
        line += match.groups()[1]
        line += "\n"
        return line
      
      for line in sys.stdin:
        if line.find("getelementptr ") == line.find("getelementptr inbounds"):
          if line.find("getelementptr inbounds") != line.find("getelementptr inbounds ("):
            line = conv(re.match(ibrep, line), line)
        elif line.find("getelementptr ") != line.find("getelementptr ("):
          line = conv(re.match(normrep, line), line)
        sys.stdout.write(line)
      
      apply.sh:
      for name in "$@"
      do
        python3 `dirname "$0"`/update.py < "$name" > "$name.tmp" && mv "$name.tmp" "$name"
        rm -f "$name.tmp"
      done
      
      The actual commands:
      From llvm/src:
      find test/ -name *.ll | xargs ./apply.sh
      From llvm/src/tools/clang:
      find test/ -name *.mm -o -name *.m -o -name *.cpp -o -name *.c | xargs -I '{}' ../../apply.sh "{}"
      From llvm/src/tools/polly:
      find test/ -name *.ll | xargs ./apply.sh
      
      After that, check-all (with llvm, clang, clang-tools-extra, lld,
      compiler-rt, and polly all checked out).
      
      The extra 'rm' in the apply.sh script is due to a few files in clang's test
      suite using interesting unicode stuff that my python script was throwing
      exceptions on. None of those files needed to be migrated, so it seemed
      sufficient to ignore those cases.
      
      Reviewers: rafael, dexonsmith, grosser
      
      Differential Revision: http://reviews.llvm.org/D7636
      
      llvm-svn: 230786
      79e6c749
    • David Blaikie's avatar
      Update Polly tests to handle explicitly typed gep changes in LLVM · bad3ff20
      David Blaikie authored
      llvm-svn: 230784
      bad3ff20
    • David Blaikie's avatar
      Update Clang tests to handle explicitly typed gep changes in LLVM. · 218b7831
      David Blaikie authored
      llvm-svn: 230783
      218b7831
    • Ilia K's avatar
      Skip LaunchInTerminalTestCase test on remote systems · d99b8f3b
      Ilia K authored
      Summary:
      This ability was added by @jasonmolenda in [[ http://reviews.llvm.org/rL225748 | r225748 ]] but it was commented out because he hadn't test it.
      I tested it on OS X and now we can enable it legally.
      
      This change is made by @chying request.
      
      Reviewers: jasonmolenda, chying, clayborg
      
      Reviewed By: clayborg
      
      Subscribers: lldb-commits, chying, jasonmolenda, clayborg
      
      Differential Revision: http://reviews.llvm.org/D7930
      
      llvm-svn: 230782
      d99b8f3b
    • Benjamin Kramer's avatar
      Refer users looking for the release notes to 3.6. · aa069c2f
      Benjamin Kramer authored
      llvm-svn: 230781
      aa069c2f
    • Eric Christopher's avatar
      Remove the Forward Control Flow Integrity pass and its dependencies. · 3b94e332
      Eric Christopher authored
      This work is currently being rethought along different lines and
      if this work is needed it can be resurrected out of svn. Remove it
      for now as no current work in ongoing on it and it's unused. Verified
      with the authors before removal.
      
      llvm-svn: 230780
      3b94e332
    • Justin Bogner's avatar
      Object: Test for reading kext bundles · ac631cb0
      Justin Bogner authored
      In the review for r230567, it was pointed out we should really test
      the lib/Object part of that change. This does so using llvm-readobj.
      
      llvm-svn: 230779
      ac631cb0
    • Reid Kleckner's avatar
      Delete LLVM_DELETED_FUNCTION from coding standards · fc44ca08
      Reid Kleckner authored
      It didn't seem worth leaving behind a guideline to use '= delete' to
      make a class uncopyable. That's a well known C++ design pattern.
      
      Reported on the mailing list and in PR22724.
      
      llvm-svn: 230776
      fc44ca08
    • Mehdi Amini's avatar
      Change the fast-isel-abort option from bool to int to enable "levels" · 945a660c
      Mehdi Amini authored
      Summary:
      Currently fast-isel-abort will only abort for regular instructions,
      and just warn for function calls, terminators, function arguments.
      There is already fast-isel-abort-args but nothing for calls and
      terminators.
      
      This change turns the fast-isel-abort options into an integer option,
      so that multiple levels of strictness can be defined.
      This will help no being surprised when the "abort" option indeed does
      not abort, and enables the possibility to write test that verifies
      that no intrinsics are forgotten by fast-isel.
      
      Reviewers: resistor, echristo
      
      Subscribers: jfb, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D7941
      
      From: Mehdi Amini <mehdi.amini@apple.com>
      llvm-svn: 230775
      945a660c
    • Johannes Doerfert's avatar
      [FIX] Teach RegionGenerator to respect and update dominance · 514f6efa
      Johannes Doerfert authored
        When we generate code for a whole region we have to respect dominance
        and update it too.
        The first is achieved with multiple "BBMap"s. Each copied block in the
        region gets its own map. It is initialized only with values mapped in
        the immediate dominator block, if this block is in the region and was
        therefor already copied. This way no values defined in a block that
        doesn't dominate the current one will be used.
        To update dominance information we check if the immediate dominator of
        the original block we want to copy is in the region. If so we set the
        immediate dominator of the current block to the copy of the immediate
        dominator of the original block.
      
      llvm-svn: 230774
      514f6efa
    • Reid Kleckner's avatar
      Minor follow-ups to r229720 suggested on llvmdev · 2e3d1e05
      Reid Kleckner authored
      "svn" patch by Sedat Dilek plus trimming whitespace added in r229720.
      
      llvm-svn: 230773
      2e3d1e05
    • Rafael Espindola's avatar
      Centralize handling of the eh_begin and eh_end labels. · 629cdbae
      Rafael Espindola authored
      This removes a bit of duplicated code and more importantly, remembers the
      labels so that they don't need to be looked up by name.
      
      This in turn allows for any name to be used and avoids a crash if the name
      we wanted was already taken.
      
      llvm-svn: 230772
      629cdbae
    • Sanjay Patel's avatar
      remove function names from comments; NFC · af0ff109
      Sanjay Patel authored
      llvm-svn: 230771
      af0ff109
    • Rui Ueyama's avatar
      PECOFF: Use StringRef::find_first_of instead of a hand-written loop. · 9f872a80
      Rui Ueyama authored
      llvm-svn: 230770
      9f872a80
Loading