Alex Crichton
bec7b766fb
rustc: Move to FNV hashing for node/def ids
...
This leverages the new hashing framework and hashmap implementation to provide a
much speedier hashing algorithm for node ids and def ids. The hash algorithm
used is currentl FNV hashing, but it's quite easy to swap out.
I originally implemented hashing as the identity function, but this actually
ended up in slowing down rustc compiling libstd from 8s to 13s. I would suspect
that this is a result of a large number of collisions.
With FNV hashing, we get these timings (compiling with --no-trans, in seconds):
| | before | after |
|-----------|---------:|--------:|
| libstd | 8.324 | 6.703 |
| stdtest | 47.674 | 46.857 |
| libsyntax | 9.918 | 8.400 |
2014-03-06 17:45:48 -08:00
Michael Woerister
1938e87393
debuginfo: Re-introduce the notion of line-table-only debuginfo.
2014-03-06 07:57:18 +01:00
Alex Crichton
2a14e084cf
Move std::{trie, hashmap} to libcollections
...
These two containers are indeed collections, so their place is in
libcollections, not in libstd. There will always be a hash map as part of the
standard distribution of Rust, but by moving it out of the standard library it
makes libstd that much more portable to more platforms and environments.
This conveniently also removes the stuttering of 'std::hashmap::HashMap',
although 'collections::HashMap' is only one character shorter.
2014-02-23 00:35:11 -08:00
Alex Crichton
071ee96277
Consolidate codegen-related compiler flags
...
Move them all behind a new -C switch. This migrates some -Z flags and some
top-level flags behind this -C codegen option.
The -C flag takes values of the form "-C name=value" where the "=value" is
optional for some flags.
Flags affected:
* --llvm-args => -C llvm-args
* --passes => -C passes
* --ar => -C ar
* --linker => -C linker
* --link-args => -C link-args
* --target-cpu => -C target-cpu
* --target-feature => -C target-fature
* --android-cross-path => -C android-cross-path
* --save-temps => -C save-temps
* --no-rpath => -C no-rpath
* -Z no-prepopulate => -C no-prepopulate-passes
* -Z no-vectorize-loops => -C no-vectorize-loops
* -Z no-vectorize-slp => -C no-vectorize-slp
* -Z soft-float => -C soft-float
* -Z gen-crate-map => -C gen-crate-map
* -Z prefer-dynamic => -C prefer-dynamic
* -Z no-integrated-as => -C no-integrated-as
As a bonus, this also promotes the -Z extra-debug-info flag to a first class -g
or --debuginfo flag.
* -Z debug-info => removed
* -Z extra-debug-info => -g or --debuginfo
Closes #9770
Closes #12000
2014-02-10 00:50:39 -08:00
Daniel Micay
eced501226
allow generating drop glue without the TyDesc
...
Reflection is now the only user of type descriptors. Uses of drop glue
no longer cause a type descriptor to be generated.
2014-02-07 21:20:43 -05:00
Eduard Burtescu
b2d30b72bf
Removed @self and @Trait.
2014-02-07 00:38:33 +02:00
Patrick Walton
19d4ea1cba
librustc: De-@str
the LLVM symbol list
2014-02-02 01:44:49 +11:00
Patrick Walton
b265dd4156
librustc: De-@str
symbol hashing
2014-02-02 01:44:49 +11:00
Patrick Walton
8e52b85d5a
libsyntax: De-@str
literal strings in the AST
2014-02-02 01:44:48 +11:00
bors
4176343073
auto merge of #11846 : michaelwoerister/rust/cu_name, r=pcwalton
...
Fixes #11600
2014-01-27 14:46:56 -08:00
Michael Woerister
0a03bc073a
debuginfo: Fix name attribute for DWARF compile units
2014-01-27 17:56:05 +01:00
Eduard Burtescu
15ba0c310a
Demote self to an (almost) regular argument and remove the env param.
...
Fixes #10667 and closes #10259 .
2014-01-27 14:31:24 +02:00
Eduard Burtescu
6b221768cf
libsyntax: Renamed types, traits and enum variants to CamelCase.
2014-01-09 22:25:28 +02:00
Patrick Walton
d3fc7b9918
librustc: De-@mut
the translation stats
2013-12-26 15:54:36 -08:00
Patrick Walton
9f6706975b
librustc: De-@mut
fn_stats
in the stats
2013-12-26 15:54:36 -08:00
Patrick Walton
e84f79feb1
librustc: De-@mut
llvm_insns
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
8c3a552ac5
librustc: Remove the unused llvm_insn_ctxt
from the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
97ceac7377
librustc: De-@mut
n_llvm_insns
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
21e4e410a9
librustc: De-@mut
n_closures
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
c010d08cd5
librustc: De-@mut
n_inlines
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
8c7804ffac
librustc: De-@mut
n_monos
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
38572f4981
librustc: De-@mut
n_fns
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
16828bb1dc
librustc: De-@mut
n_real_glues
2013-12-26 15:54:35 -08:00
Patrick Walton
75efa0725d
librustc: De-@mut
n_null_glues
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
26d1394767
librustc: De-@mut
n_glues_created
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
091bfa9cc3
librustc: De-@mut
n_static_tydescs
in the stats
2013-12-26 15:54:35 -08:00
Patrick Walton
07279011b8
librustc: De-@mut
the type descriptor info
2013-12-26 15:54:32 -08:00
Patrick Walton
fbb70d916f
librustc: De-@mut
the reachable
map
2013-12-26 15:54:29 -08:00
Patrick Walton
b941677ea3
librustc: De-@mut
the crate context
2013-12-26 13:01:26 -08:00
Patrick Walton
2418cc0212
librustc: De-@mut
the crate context's do_not_commit_warning_issued
2013-12-26 13:01:26 -08:00
Patrick Walton
61768de5e9
librustc: De-&mut
TypeNames
2013-12-26 13:01:26 -08:00
Patrick Walton
303a39477b
librustc: De-@mut
CrateContext::symbol_hasher
.
2013-12-26 13:01:25 -08:00
Patrick Walton
fc92f92572
librustc: De-@mut
CrateContext::finished_tydescs
.
2013-12-26 13:01:25 -08:00
Patrick Walton
462a791c34
librustc: De-@mut
the external
and external_srcs
fields of
...
`CrateContext`
2013-12-26 13:01:25 -08:00
Patrick Walton
1e654f5ff7
librustc: De-@mut
CrateContext::externs
2013-12-26 13:01:25 -08:00
Patrick Walton
519db34722
librustc: De-@mut
CrateContext::tydescs
2013-12-26 13:01:24 -08:00
Patrick Walton
b5aa6eb69f
librustc: De-@mut
CrateContext::non_inlineable_statics
2013-12-26 13:01:24 -08:00
Patrick Walton
02bdda2776
librustc: De-@mut
CrateContext::all_llvm_symbols
2013-12-26 13:01:24 -08:00
Patrick Walton
b895ba52bc
librustc: Remove unused CrateContext::type_short_names
2013-12-26 13:01:24 -08:00
Patrick Walton
25337a7f9f
librustc: De-@mut
CrateContext::type_hashcodes
2013-12-26 13:01:24 -08:00
Patrick Walton
a1747a6091
librustc: De-@mut
CrateContext::adt_reprs
2013-12-26 13:01:24 -08:00
Patrick Walton
db83a957b6
librustc: De-@mut
CrateContext::llsizingtypes
2013-12-26 13:01:24 -08:00
Patrick Walton
06805209e4
librustc: De-@mut
lltypes
.
2013-12-26 13:01:24 -08:00
Patrick Walton
8c194a0136
librustc: De-@mut
CrateContext::module_data
2013-12-26 13:01:24 -08:00
Patrick Walton
1185fcc437
librustc: De-@mut
the impl_method_cache
2013-12-26 13:01:24 -08:00
Patrick Walton
37e3f2fe63
librustc: De-@mut
CrateContext::extern_const_values
2013-12-26 13:01:24 -08:00
Patrick Walton
d16cca1f50
librustc: De-@mut
const_values
.
2013-12-26 13:01:23 -08:00
Patrick Walton
28943e96cb
librustc: De-@mut
RefCell::const_globals
.
2013-12-26 13:01:23 -08:00
Patrick Walton
0e2041c54b
librustc: De-@mut
CrateContext::const_cstr_cache
.
2013-12-26 13:01:23 -08:00
Patrick Walton
13f85cb097
librustc: De-@mut
CrateContext::vtables
.
2013-12-26 13:01:23 -08:00