14 Commits

Author SHA1 Message Date
Nicholas Nethercote
e539dd65f8 Eliminate the SessionGlobals from librustc_ast.
By moving `{known,used}_attrs` from `SessionGlobals` to `Session`. This
means they are accessed via the `Session`, rather than via TLS. A few
`Attr` methods and `librustc_ast` functions are now methods of
`Session`.

All of this required passing a `Session` to lots of functions that didn't
already have one. Some of these functions also had arguments removed, because
those arguments could be accessed directly via the `Session` argument.

`contains_feature_attr()` was dead, and is removed.

Some functions were moved from `librustc_ast` elsewhere because they now need
to access `Session`, which isn't available in that crate.
- `entry_point_type()` --> `librustc_builtin_macros`
- `global_allocator_spans()` --> `librustc_metadata`
- `is_proc_macro_attr()` --> `Session`
2020-08-08 12:03:42 +10:00
Vadim Petrochenkov
0a88346be6 rustc_ast: (Nested)MetaItem::check_name -> has_name
For consistency with `Attribute::has_name` which doesn't mark the attribute as used either.

Replace all uses of `check_name` with `has_name` outside of rustc
2020-08-04 00:34:11 +03:00
Dylan MacKenzie
698e870f75 Stop adding unreachable basic blocks to dataflow work queue
Also adds some debug assertions to prevent API consumers from visiting
those basic blocks by accident.
2020-07-08 18:49:52 -07:00
Dylan MacKenzie
efe634f14c Add reachable and friends to mir::traversal module 2020-07-08 10:02:13 -07:00
Vadim Petrochenkov
283e5b4106 Rename the crates in source code 2020-06-02 20:42:54 +03:00
Dylan MacKenzie
c68d710d52 Support backward dataflow analyses 2020-05-03 11:36:11 -07:00
Mazdak Farrokhzad
9223bb5f32
Rollup merge of #70627 - spastorino:use-place-directly-its-copy, r=oli-obk
Use place directly its copy

r? @oli-obk
2020-04-01 14:32:19 +02:00
Mazdak Farrokhzad
84a4633880
Rollup merge of #70511 - ecstatic-morse:mir-dataflow-graphviz, r=davidtwco
Add `-Z dump-mir-dataflow` flag for dumping dataflow results visualization

Previously, to visualize the results of a MIR dataflow pass, one had to add a `#[rustc_mir(borrowck_graphviz_postflow)]` attribute to functions of interest. However, there is no way to specify this attribute on closures and generators, so it was impossible to view results for these MIR bodies.

This PR adds a flag, `-Z dump-mir-dataflow`, which will output the dataflow results for any functions specified in `-Z dump-mir` to the output directory specified by `-Z dump-mir-dir`. This behavior is modeled on the `-Z dump-mir-graphviz` flag.
2020-04-01 14:32:12 +02:00
Santiago Pastorino
6a95bf884f
Use Place directly on Operand::place and friends, it's Copy 2020-03-31 14:45:07 -03:00
Mazdak Farrokhzad
1ccb0b4a02 rustc -> rustc_middle part 3 (rustfmt) 2020-03-30 07:19:55 +02:00
Mazdak Farrokhzad
0cb9e36090 rustc -> rustc_middle part 2 2020-03-30 07:16:56 +02:00
Dylan MacKenzie
4d1194c31a Ensure output dir for dataflow results exists 2020-03-28 14:09:34 -07:00
Dylan MacKenzie
c8004027ba Dump graphviz dataflow results with flag 2020-03-28 14:09:12 -07:00
Dylan MacKenzie
bae1114e75 Rename dataflow::generic to dataflow::framework 2020-03-26 16:19:21 -07:00