Skip to content
  1. Jan 25, 2012
    • Jim Grosbach's avatar
      Tidy up. s/Low Level Virtual Machine/LLVM/. · 65e24655
      Jim Grosbach authored
      LLVM isn't an acronym anymore.
      
      llvm-svn: 148985
      65e24655
    • Lang Hames's avatar
      Always break upon finding a vreg operand (in Release as well as +Asserts).... · 19feb5f2
      Lang Hames authored
      Always break upon finding a vreg operand (in Release as well as +Asserts). Remove assertion which can no longer trigger.
      
      llvm-svn: 148984
      19feb5f2
    • Greg Clayton's avatar
      If timestamps are enabled when logging GDB remote packets ("log enable -T -f... · 5c3de156
      Greg Clayton authored
      If timestamps are enabled when logging GDB remote packets ("log enable -T -f /tmp/packets.log gdb-remote logs") then get the amount of time spent executing each packet and summarize at the end of a dump. Sample timing output looks like:
      
      ----------------------------------------------------------------------
      Packet timing summary:
      ----------------------------------------------------------------------
      Packet                 Time       %
      ---------------------- -------- ------
             qThreadStopInfo 0.363844  35.35
                           m 0.281967  27.39
                           s 0.147160  14.30
                qfThreadInfo 0.070865   6.88
                qsThreadInfo 0.061608   5.99
                           z 0.036796   3.57
                           Z 0.036271   3.52
                           c 0.018410   1.79
                           H 0.012418   1.21
      ---------------------- -------- ------
                       Total 1.029339 100.00
      
      llvm-svn: 148983
      5c3de156
    • Eric Christopher's avatar
      Clean up comment. · bfecca33
      Eric Christopher authored
      llvm-svn: 148982
      bfecca33
    • Chandler Carruth's avatar
      Try to unbreak the FreeBSD toolchain's detection of 32-bit targets · 143f2f6e
      Chandler Carruth authored
      inside a 64-bit freebsd machine with the 32-bit compatibility layer
      installed. The FreeBSD image always has the /usr/lib32 directory, so
      test for the more concrete existence of crt1.o. Also enhance the tests
      for freebsd to clarify what these trees look like and exercise the new
      code.
      
      Thanks to all the FreeBSD folks for helping me understand what caused
      the failure and how we might fix it. =] That helps a lot. Also, yay
      build bots.
      
      llvm-svn: 148981
      143f2f6e
    • Kaelyn Uhrain's avatar
      Allow typo correction to be disabled in BuildOverloadedCallExpr variant. · 9afaf793
      Kaelyn Uhrain authored
      This suppresses typo correction for auto-generated call expressions such
      as to 'begin' or 'end' within a C++0x for-range statement.
      
      llvm-svn: 148979
      9afaf793
    • Chandler Carruth's avatar
      Restore a tiny bit of functionality that I completely overlooked in the · cf705b21
      Chandler Carruth authored
      Linux toolchain selection -- sorry folks. =] This should fix the Hexagon
      toolchain.
      
      However, I would point out that I see why my testing didn't catch this
      -- we have no tests for Hexagon. ;]
      
      llvm-svn: 148977
      cf705b21
    • Johnny Chen's avatar
      Move argument checking/manipulation into the front of the function. · 11c00fc7
      Johnny Chen authored
      llvm-svn: 148974
      11c00fc7
    • Kaelyn Uhrain's avatar
      Avoid correcting unknown identifiers to types where types aren't allowed. · 77e21fca
      Kaelyn Uhrain authored
      Pass a typo correction callback object from ParseCastExpr to
      Sema::ActOnIdExpression to be a bit more selective about what kinds of
      corrections will be allowed for unknown identifiers.
      
      llvm-svn: 148973
      77e21fca
    • Johnny Chen's avatar
      Clearify some comment. · 8d24390c
      Johnny Chen authored
      llvm-svn: 148972
      8d24390c
    • Johnny Chen's avatar
      Cleanup docstring and remove dead code. · 78e49e7f
      Johnny Chen authored
      llvm-svn: 148971
      78e49e7f
    • Argyrios Kyrtzidis's avatar
    • Jim Grosbach's avatar
      ARM assemly parsing and validation of IT instruction. · 82f76d12
      Jim Grosbach authored
      "Although a Thumb2 instruction, the IT mnemonic shall be permitted in
      ARM mode, and the condition verified to match the condition code(s)
      on the following instruction(s)."
      
      PR11853
      
      llvm-svn: 148969
      82f76d12
    • Howard Hinnant's avatar
      These commits are intended to be temporary in nature and are to facilitate the... · 113cf60e
      Howard Hinnant authored
      These commits are intended to be temporary in nature and are to facilitate the testing of libc++abi.dylib at this point in time.
      
      llvm-svn: 148967
      113cf60e
    • Howard Hinnant's avatar
      db970642
    • Howard Hinnant's avatar
      cxa_guard.cpp didn't quite make it on the last commit: Restricted headers to... · 5d6b9d28
      Howard Hinnant authored
      cxa_guard.cpp didn't quite make it on the last commit:  Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall.  Thanks John.
      
      llvm-svn: 148965
      5d6b9d28
    • Nick Lewycky's avatar
      Use precomputed BB size instead of BB->size(). · 0e496cdd
      Nick Lewycky authored
      llvm-svn: 148964
      0e496cdd
    • Howard Hinnant's avatar
      Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment... · 24495385
      Howard Hinnant authored
      Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall.  Thanks John.
      
      llvm-svn: 148963
      24495385
    • Kaelyn Uhrain's avatar
      Add custom callback object for typo correction in BuildRecoveryCallExpr. · 8edb17d7
      Kaelyn Uhrain authored
      The new callback, in addition to limiting which keywords to include in
      the pool of typo correction candidates, also filters out non-keyword
      candidates that don't refer to (template) functions that accept the
      number of arguments that are present for the call being recovered.
      
      llvm-svn: 148962
      8edb17d7
    • Douglas Gregor's avatar
      When we're substituting into a function parameter pack and expect to · 0dd22bc4
      Douglas Gregor authored
      get a function parameter pack (but don't due to weird substitutions),
      complain. Fixes the last bit of PR11848.
      
      llvm-svn: 148960
      0dd22bc4
    • Chandler Carruth's avatar
      The Linux pattern of adding all the search paths that exist doesn't seem · f7bf3db0
      Chandler Carruth authored
      to suit the FreeBSD folks. Take them back to something closer to the old
      behavior. We test whether the /usr/lib32 directory exists (within the
      SysRoot), and use it if so, otherwise use /usr/lib.
      
      FreeBSD folks, let me know if this causes any problems, or if you have
      further tweaks.
      
      llvm-svn: 148953
      f7bf3db0
    • Chandler Carruth's avatar
      Remove the 'ToolTriple' concept from the NetBSD toolchain along with my · 1ccbed88
      Chandler Carruth authored
      gross hack to provide it from my previous patch removing HostInfo. This
      was enshrining (and hiding from my searches) the concept of storing and
      diff-ing the host and target triples. We don't have the host triple
      reliably available, so we need to merely inspect the target system. I've
      changed the logic in selecting library search paths for NetBSD to match
      what I provided for FreeBSD -- we include both search paths, but put the
      32-bit-on-64-bit-host path first so it trumps.
      
      NetBSD maintainers, you may want to tweak this, or feel free to ask me
      to tweak it. I've left a FIXME here about the challeng I see in fixing
      this properly.
      
      llvm-svn: 148952
      1ccbed88
    • Chandler Carruth's avatar
      Delete still more remnants of the now dead HostInfo. The janitoring will · 2886ba23
      Chandler Carruth authored
      continue until cleanliness improves.
      
      llvm-svn: 148951
      2886ba23
    • Chandler Carruth's avatar
      Delete the driver's HostInfo class. This abstraction just never really · 2ad5de1f
      Chandler Carruth authored
      did anything. The two big pieces of functionality it tried to provide
      was to cache the ToolChain objects for each target, and to figure out
      the exact target based on the flag set coming in to an invocation.
      However, it had a lot of flaws even with those goals:
       - Neither of these have anything to do with the host, or its info.
       - The HostInfo class was setup as a full blown class *hierarchy* with
         a separate implementation for each "host" OS. This required
         dispatching just to create the objects in the first place.
       - The hierarchy claimed to represent the host, when in fact it was
         based on the target OS.
       - Each leaf in the hierarchy was responsible for implementing the flag
         processing and caching, resulting in a *lot* of copy-paste code and
         quite a few bugs.
       - The caching was consistently done based on architecture alone, even
         though *any* aspect of the targeted triple might change the behavior
         of the configured toolchain.
       - Flag processing was already being done in the Driver proper,
         separating the flag handling even more than it already is.
      
      Instead of this, we can simply have the dispatch logic in the Driver
      which previously created a HostInfo object create the ToolChain objects.
      Adding caching in the Driver layer is a tiny amount of code. Finally,
      pulling the flag processing into the Driver puts it where it belongs and
      consolidates it in one location.
      
      The result is that two functions, and maybe 100 lines of new code
      replace over 10 classes and 800 lines of code. Woot.
      
      This also paves the way to introduce more detailed ToolChain objects for
      various OSes without threading through a new HostInfo type as well, and
      the accompanying boiler plate. That, of course, was the yak I started to
      shave that began this entire refactoring escapade. Wheee!
      
      llvm-svn: 148950
      2ad5de1f
    • Chandler Carruth's avatar
      Add some really minimalist freebsd testing trees and use them in the · 013820fe
      Chandler Carruth authored
      freebsd test so that it's behavior isn't dependent on the filesystem of
      the host running the tests. This should revive the build bots at least.
      The tests and the trees still need a lot of love to make them as useful
      and easy to maintain as linux-ld.c.
      
      llvm-svn: 148949
      013820fe
    • Jean-Daniel Dupas's avatar
      d5f7ef48
    • Chris Lattner's avatar
      fix a bug I introduced in r148929, this is not a splat! · 33633a90
      Chris Lattner authored
      Thanks to Eli for noticing.
      
      llvm-svn: 148947
      33633a90
    • Nick Lewycky's avatar
      Gracefully degrade precision in branch probability numbers. · 3c3feaf4
      Nick Lewycky authored
      llvm-svn: 148946
      3c3feaf4
    • Chandler Carruth's avatar
      Switch the ToolChain types to all store a Driver reference rather than · b65b111d
      Chandler Carruth authored
      a HostInfo reference. Nothing about the HostInfo was used by any
      toolchain except digging out the driver from it. This just makes that
      a lot more direct. The change was accomplished entirely mechanically.
      It's one step closer to removing the shim full of buggy copy/paste code
      that is HostInfo.
      
      llvm-svn: 148945
      b65b111d
    • NAKAMURA Takumi's avatar
      test/CodeGen/avx-builtins.c: Fix more for -Asserts. · 509b7af0
      NAKAMURA Takumi authored
      llvm-svn: 148944
      509b7af0
    • NAKAMURA Takumi's avatar
      Fixup r148926, for -Asserts. · ccca11a3
      NAKAMURA Takumi authored
      llvm-svn: 148943
      ccca11a3
    • Chandler Carruth's avatar
      Remove the TargetTriple object that I added to the Driver recently. This · cb91619e
      Chandler Carruth authored
      helped stage the refactoring of things a bit, but really isn't the right
      place for it. The driver may be responsible for compilations with many
      different targets. In those cases, having a target triple in the driver
      is actively misleading because for many of those compilations that is
      not actually the triple being targeted.
      
      This moves the last remaining users of the Driver's target triple to
      instead use the ToolChain's target triple. The toolchain has a single,
      concrete target it operates over, making this a more stable and natural
      home for it.
      
      llvm-svn: 148942
      cb91619e
    • Nick Lewycky's avatar
      Support pointer comparisons against constants, when looking at the inline-cost · 70d50ee8
      Nick Lewycky authored
      savings from a pointer argument becoming an alloca. Sometimes callees will even
      compare a pointer to null and then branch to an otherwise unreachable block!
      Detect these cases and compute the number of saved instructions, instead of
      bailing out and reporting no savings.
      
      llvm-svn: 148941
      70d50ee8
    • Chandler Carruth's avatar
      Have FreeBSD use even more of the same smarts as Linux is now using for · 25442b8e
      Chandler Carruth authored
      adding search paths. Add them only when they exist, and prefix the paths
      with the sysroot. This will allow targeting a FreeBSD sysroot on
      a non-FreeBSD host machine, and perhaps more importantly should allow
      testing the FreeBSD driver's behavior similarly to the Linux tests with
      a fake tree of files in the regression test suite.
      
      I don't have FreeBSD systems handy to build up the list of files that
      should be used here, but this is the basic functionality and I'm hoping
      Roman or someone from the community can contribute the actual test
      cases.
      
      llvm-svn: 148940
      25442b8e
    • Chandler Carruth's avatar
      Switch FreeBSD to just include both '/usr/lib32' and '/usr/lib' in the · f4826e28
      Chandler Carruth authored
      search paths for 32-bit targets. This avoids having to detect which is
      expected for the target system, and the linker should DTRT, and take the
      32-bit libraries from the first one when applicable. Thanks to Roman
      Divacky for sanity checking this.
      
      llvm-svn: 148939
      f4826e28
    • Chandler Carruth's avatar
      Switch the Linux C++ standard library header search logic over to use · a1f1fd3b
      Chandler Carruth authored
      the GCC installation's multiarch suffix now that it is exposed.
      
      llvm-svn: 148938
      a1f1fd3b
    • Chandler Carruth's avatar
      Revert a tiny bit of r148553 which extended LLVM's function attributes · 44d69d9c
      Chandler Carruth authored
      to 64-bits, and added a new attribute in bit #32. Specifically, remove
      this new attribute from the enum used in the C API. It's not yet clear
      what the best approach is for exposing these new attributes in the
      C API, and several different proposals are on the table. Until then, we
      can simply not expose this bit in the API at all.
      
      Also, I've reverted a somewhat unrelated change in the same revision
      which switched from "1 << 31" to "1U << 31" for the top enum. While "1
      << 31" is technically undefined behavior, implementations DTRT here.
      However, MS and -pedantic mode warn about non-'int' type enumerator
      values. If folks feel strongly about this I can put the 'U' back in, but
      it seemed best to wait for the proper solution.
      
      llvm-svn: 148937
      44d69d9c
    • Evan Cheng's avatar
      Update hasProperty comment. · ef6a2ea2
      Evan Cheng authored
      llvm-svn: 148936
      ef6a2ea2
    • Chandler Carruth's avatar
      Make a major refactoring to how the GCC installation detection works. · 866faab4
      Chandler Carruth authored
      The fundamental shift here is to stop making *any* assumptions about the
      *host* triple. Where these assumptions you ask? Why, they were in one of
      the two target triples referenced of course. This was the single biggest
      place where the previously named "host triple" was actually used as
      such. ;] The reason we were reasoning about the host is in order to
      detect the use of '-m32' or '-m64' flags to change the target. These
      flags shift the default target only slightly, which typically means
      a slight deviation from the host. When using these flags, the GCC
      installation is under a different triple from the one actually targeted
      in the compilation, and we used the host triple to find it.
      
      Too bad that wasn't even correct. Consider an x86 Linux host which has
      a PPC64 cross-compiling GCC toolchain installed. This toolchain is also
      configured for multiarch compiling and can target PPC32 with eth '-m32'
      flag. When targeting 'powerpc-linux-gnu' or some other PPC32 triple, we
      have to look for the PPC64 variant of the triple to find the GCC
      install, and that triple is neither the host nor target.
      
      The new logic computes the multiarch's alternate triple from the target
      triple, and looks under both sides. It also looks more aggressively for
      the correct subdirectory of the GCC installation, and exposes the
      subdirectory in a nice programmatic way. This '/32' or '/64' suffix is
      something we can reuse in many other parts of the toolchain.
      
      An important note -- while this likely fixes a large category of
      cross-compile use cases, that's not my primary goal, and I've not done
      testing (or added test cases) for scenarios that may now work. If
      someone else wants to try more interesting PPC cross compiles, I'd love
      to have reports. But my focus is on factoring away the references to the
      "host" triple. The refactoring is my goal, and so I'm mostly relying on
      the existing (pretty good) test coverage we have here.
      
      Future patches will leverage this new functionality to factor out more
      and more of the toolchain's triple manipulation.
      
      llvm-svn: 148935
      866faab4
    • Chris Lattner's avatar
      use Constant::getAggregateElement to simplify a bunch of code. · 6705883a
      Chris Lattner authored
      llvm-svn: 148934
      6705883a
Loading