1. 05 8月, 2017 3 次提交
    • B
      Auto merge of #43615 - dhduvall:lto-unaligned-read, r=nagisa · 9b6c2382
      bors 提交于
      Fix some unaligned reads on SPARC in LTO
      
      This fixes #43593 by eliminating some undefined behavior.
      9b6c2382
    • B
      Auto merge of #43590 - michaelwoerister:no-reopening-1, r=nikomatsakis · d692a91f
      bors 提交于
      incr.comp.: Assert that no DepNode is re-opened (see issue #42298).
      
      This PR removes the last occurrence of DepNode re-opening and adds an assertion that prevents our doing so in the future too. The DepGraph should no be guaranteed to be cycle free.
      
      r? @nikomatsakis
      
      EDIT: Closes https://github.com/rust-lang/rust/issues/42298
      d692a91f
    • B
      Auto merge of #43577 - cuviper:link-llvm-dylib, r=sanxiyn · ff1135b2
      bors 提交于
      Link LLVM tools dynamically
      
      Set `LLVM_LINK_LLVM_DYLIB=ON` -- "If enabled, tools will be linked with
      the libLLVM shared library."  Rust doesn't ship any of the LLVM tools,
      and only needs a few at all for some test cases, so statically linking
      the tools is just a waste of space.  I've also had memory issues on
      slower machines with LLVM debuginfo enabled, when several tools start
      linking in parallel consuming several GBs each.
      
      With the default configuration, `build/x86_64-unknown-linux-gnu/llvm`
      was 1.5GB before, now down to 731MB.  The difference is more drastic
      with `--enable-llvm-release-debuginfo`, from 28GB to "only" 13GB.
      
      This does not change the linking behavior of `rustc_llvm`.
      ff1135b2
  2. 04 8月, 2017 16 次提交
  3. 03 8月, 2017 18 次提交
  4. 02 8月, 2017 3 次提交
    • K
      4792d28e
    • B
      Auto merge of #43605 - RalfJung:mapdoc, r=michaelwoerister · cd87b5d5
      bors 提交于
      Improve hir::map::Map::get_parent_node doc
      
      The documentation says
      ```
          /// Similar to get_parent, returns the parent node id or id if there is no
          /// parent.
          /// This function returns the immediate parent in the AST, whereas get_parent
          /// returns the enclosing item.
      ```
      One would think that one can walk up the tree by repeatedly calling `get_parent_node` until it returns the argument, and then work on the `NodeId`s that arise. However, that is not true: `get_parent_node` will return id 0 (the crate itself) for items that sit directly in the crate; calling `get` on that `NodeId` will panic.
      
      So, the fact that `get_parent_node` returns the root when passed the root is actually not really useful, because the root itself is already a somewhat degenerate node. This improves the doc so hopefully people writing code that "walks up the tree" don't run into this issue like I did...
      cd87b5d5
    • B
      Auto merge of #43612 - michaelwoerister:fix-cgu-hashing, r=eddyb · 22f256f6
      bors 提交于
      incr.comp.: Properly incorporate symbol linkage and visibility into CGU hash.
      
      This PR fixes the way the CGU hash for incr. comp. is computed. The CGU hash represents which `TransItems` are emitted into which codegen unit with which linkage and visibility. Before the new, LLVM-independent symbol internalizer the CGU hash did not accurately contain `TransItem` linkage and visibility because we would not enable symbol internalization in incremental mode anyway. The new internalizer is also run in incremental mode which uncovered the inaccuracy of CGU hashing. Luckily, the fix is rather simple.
      
      r? @EddyB
      cc @nikomatsakis
      22f256f6