about summary refs log tree commit diff
path: root/src/librustc_trans/trans/inline.rs
AgeCommit message (Collapse)AuthorLines
2016-03-27rustc_trans: move the contents of the trans module to top-level.Eduard Burtescu-186/+0
2016-03-27rustc: move cfg, infer, traits and ty from middle to top-level.Eduard Burtescu-1/+1
2016-03-27rustc: move middle::subst into middle::ty.Eduard Burtescu-1/+1
2016-03-25Add missing entries for enum variants in trans::CrateContext::external_srcs.Michael Woerister-0/+2
2016-03-24remove `empty_substs_for_node_id`Niko Matsakis-1/+1
2016-03-24remove ErasedRegions from substitutionsNiko Matsakis-2/+2
This hack has long since outlived its usefulness; the transition to trans passing around full substitutions is basically done. Instead of `ErasedRegions`, just supply substitutions with a suitable number of `'static` entries, and invoke `erase_regions` when needed (the latter of which we already do).
2016-03-17trans: Load and cache cross-crate Mir instances in the shared context.Eduard Burtescu-2/+1
2016-03-17trans: Get functions and do calls only through Callee.Eduard Burtescu-44/+35
2016-03-17metadata: Constrain FoundAst::FoundParent to an Item.Eduard Burtescu-6/+2
2016-02-12Autoderef in librustc_transJonas Schievink-1/+1
2016-01-06Auto merge of #30532 - nikomatsakis:cross-item-dependencies, r=mwbors-2/+3
This is roughly the same as my previous PR that created a dependency graph, but that: 1. The dependency graph is only optionally constructed, though this doesn't seem to make much of a difference in terms of overhead (see measurements below). 2. The dependency graph is simpler (I combined a lot of nodes). 3. The dependency graph debugging facilities are much better: you can now use `RUST_DEP_GRAPH_FILTER` to filter the dep graph to just the nodes you are interested in, which is super help. 4. The tests are somewhat more elaborate, including a few known bugs I need to fix in a second pass. This is potentially a `[breaking-change]` for plugin authors. If you are poking about in tcx state or something like that, you probably want to add `let _ignore = tcx.dep_graph.in_ignore();`, which will cause your reads/writes to be ignored and not affect the dep-graph. After this, or perhaps as an add-on to this PR in some cases, what I would like to do is the following: - [x] Write-up a little guide to how to use this system, the debugging options available, and what the possible failure modes are. - [ ] Introduce read-only and perhaps the `Meta` node - [x] Replace "memoization tasks" with node from the map itself - [ ] Fix the shortcomings, obviously! Notably, the HIR map needs to register reads, and there is some state that is not yet tracked. (Maybe as a separate PR.) - [x] Refactor the dep-graph code so that the actual maintenance of the dep-graph occurs in a parallel thread, and the main thread simply throws things into a shared channel (probably a fixed-size channel). There is no reason for dep-graph construction to be on the main thread. (Maybe as a separate PR.) Regarding performance: adding this tracking does add some overhead, approximately 2% in my measurements (I was comparing the build times for rustdoc). Interestingly, enabling or disabling tracking doesn't seem to do very much. I want to poke at this some more and gather a bit more data -- in some tests I've seen that 2% go away, but on others it comes back. It's not entirely clear to me if that 2% is truly due to constructing the dep-graph at all. The next big step after this is write some code to dump the dep-graph to disk and reload it. r? @michaelwoerister
2016-01-05Annotate the compiler with information about what it is doing when.Niko Matsakis-2/+3
2015-12-31Forward attributes of translated function/closure to trans_fn/trans_closure.Michael Woerister-1/+1
2015-11-26split the metadata code into rustc_metadataAriel Ben-Yehuda-1/+1
tests & rustdoc still broken
2015-11-26make CrateStore a trait objectAriel Ben-Yehuda-1/+0
rustdoc still broken
2015-11-26remove csearch from the rest of rustcAriel Ben-Yehuda-16/+10
2015-11-16ImplItem_ -> ImplItemKind renameOliver Schneider-1/+1
2015-11-16rename ImplItem_::*ImplItem to ImplItem_::*Oliver Schneider-1/+1
[breaking change]
2015-10-13Merge VariantData and VariantData_Vadim Petrochenkov-4/+4
2015-10-13Merge struct fields and struct kindVadim Petrochenkov-7/+6
2015-10-13Dict -> Struct, StructDef -> VariantData, def -> dataVadim Petrochenkov-3/+3
2015-10-13Remove now redundant NodeId from VariantVadim Petrochenkov-2/+2
2015-10-13Decouple structure kinds from NodeIdsVadim Petrochenkov-6/+6
2015-10-02Merge branch 'master' into metadietAriel Ben-Yehuda-5/+8
rlib sizes: 1445222 liballoc_jemalloc-bb943c5a.rlib 10664 liballoc_system-bb943c5a.rlib 143592 libarena-bb943c5a.rlib 3639102 libcollections-bb943c5a.rlib 16316910 libcore-bb943c5a.rlib 214154 libflate-bb943c5a.rlib 231440 libfmt_macros-bb943c5a.rlib 536976 libgetopts-bb943c5a.rlib 209672 libgraphviz-bb943c5a.rlib 408008 liblibc-bb943c5a.rlib 189610 liblog-bb943c5a.rlib 662184 librand-bb943c5a.rlib 605112 librbml-bb943c5a.rlib 1397820 librustc_back-bb943c5a.rlib 38383772 librustc-bb943c5a.rlib 12842 librustc_bitflags-bb943c5a.rlib 2297822 librustc_borrowck-bb943c5a.rlib 571064 librustc_data_structures-bb943c5a.rlib 9356542 librustc_driver-bb943c5a.rlib 9477226 librustc_front-bb943c5a.rlib 1605698 librustc_lint-bb943c5a.rlib 77111720 librustc_llvm-bb943c5a.rlib 4783848 librustc_mir-bb943c5a.rlib 3534256 librustc_platform_intrinsics-bb943c5a.rlib 593038 librustc_privacy-bb943c5a.rlib 3122202 librustc_resolve-bb943c5a.rlib 14185212 librustc_trans-bb943c5a.rlib 11940328 librustc_typeck-bb943c5a.rlib 1634264 librustc_unicode-bb943c5a.rlib 15564160 librustdoc-bb943c5a.rlib 8153964 libstd-bb943c5a.rlib 30589338 libsyntax-bb943c5a.rlib 897110 libterm-bb943c5a.rlib 1360662 libtest-bb943c5a.rlib
2015-10-01Convert DefId to use DefIndex, which is an index into a list ofNiko Matsakis-1/+1
paths, and construct paths for all definitions. Also, stop rewriting DefIds for closures, and instead just load the closure data from the original def-id, which may be in another crate.
2015-10-01move direct accesses of `node` to go through `as_local_node_id`, unlessNiko Matsakis-1/+1
they are being used as an opaque "position identifier"
2015-10-01move job of creating local-def-ids to ast-map (with a few stragglers)Niko Matsakis-3/+6
2015-09-03Add an intital HIR and lowering stepNick Cameron-6/+7
2015-08-24convert to use `is_local` instead of `== LOCAL_CRATE`Niko Matsakis-2/+2
2015-08-24fallout from moving def-idNiko Matsakis-10/+10
2015-08-14move InlinedItem into librustc, where it belongsNiko Matsakis-5/+6
2015-08-06use VariantDef instead of struct_fieldsAriel Ben-Yehuda-22/+24
2015-06-26rustc: switch most remaining middle::ty functions to methods.Eduard Burtescu-6/+5
2015-06-08Tidying up, fix some minor linkage bugs, use ty flags to avoid caching ↵Nick Cameron-7/+13
closure types.
2015-05-21syntax: parse `const fn` for free functions and inherent methods.Eduard Burtescu-1/+1
2015-04-23Fix a number of bugs that interfered with cross-crate usage of associated ↵Sean Patrick Santos-0/+8
consts.
2015-03-11syntax: move MethMac to MacImplItem and combine {Provided,Required}Method ↵Eduard Burtescu-9/+9
into MethodTraitItem.
2015-03-11syntax: rename TypeMethod to MethodSig and use it in MethDecl.Eduard Burtescu-2/+2
2015-03-11syntax: gather common fields of impl & trait items into their respective types.Eduard Burtescu-41/+29
2015-03-11syntax: move indirection around {Trait,Impl}Item, from within.Eduard Burtescu-35/+33
2015-03-03Switched to Box::new in many places.Felix S. Klock II-1/+1
Many of the modifications putting in `Box::new` calls also include a pointer to Issue 22405, which tracks going back to `box <expr>` if possible in the future. (Still tried to use `Box<_>` where it sufficed; thus some tests still have `box_syntax` enabled, as they use a mix of `box` and `Box::new`.) Precursor for overloaded-`box` and placement-`in`; see Issue 22181.
2015-02-16rustc_trans: promote constant rvalues in functions as an optimization.Eduard Burtescu-1/+2
2015-01-28Rename found_ast to FoundAst and qualify uses.Ms2ger-8/+8
This matches contemporary Rust style.
2015-01-05DecodeInlinedItem: convert to "unboxed" closuresJorge Aparicio-1/+1
2014-11-19rustc: fix fallout of making `Ty` an alias for `&TyS` instead of a wrapper.Eduard Burtescu-1/+2
2014-11-18Move trans, back, driver, and back into a new crate, rustc_trans. Reduces ↵Niko Matsakis-0/+197
memory usage significantly and opens opportunities for more parallel compilation.