Bastian Kauschke
810dbf7770
take mir::PlaceElem by value
2020-05-23 12:24:19 +02:00
Amanieu d'Antras
abed45ff9f
Implement asm! codegen
2020-05-18 14:41:32 +01:00
Dylan MacKenzie
d0086166b7
Add MutatingUseContext::Yield
...
...emulating `MutatingUseContext::Call`
2020-05-03 11:36:11 -07:00
bors
db9b05aeb5
Auto merge of #71044 - ecstatic-morse:body-predecessor-cache, r=oli-obk
...
Remove `BodyAndCache`
...returning to the original approach using interior mutability within `Body`. This simplifies the API at the cost of some uncontended mutex locks when the parallel compiler is enabled.
The current API requires you to either have a mutable reference to `Body` (`&mut BodyAndCache`), or to compute the predecessor graph ahead of time by creating a `ReadOnlyBodyAndCache`. This is not a good fit for, e.g., the dataflow framework, which
1. does not mutate the MIR
2. only sometimes needs the predecessor graph (for backward dataflow problems)
2020-04-22 21:08:28 +00:00
Dylan MacKenzie
64db428967
Don't use *
for deref-coercion
2020-04-22 09:57:43 -07:00
Santiago Pastorino
15ecfe65a8
visit_place_base is just visit_local
2020-04-21 17:46:27 -03:00
Josh Stone
7b005c5fcb
Dogfood more or_patterns in the compiler
2020-04-19 07:33:58 -07:00
Mazdak Farrokhzad
124144704f
nix rustc_target::abi::* reexport in ty::layout
2020-04-02 13:40:43 +02: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
538cdef64b
Use &
to do deref coercion for ReadOnlyBodyAndCache
2020-03-29 13:30:26 -07:00
Dylan MacKenzie
b641e9e358
Make Visitor::visit_body
take a simple Body
2020-03-29 11:56:36 -07:00
Mazdak Farrokhzad
977d69fc19
Rollup merge of #69714 - spastorino:place-ref-lifetime, r=oli-obk
...
Make PlaceRef take just one lifetime
r? @eddyb
2020-03-10 06:47:50 +01:00
Santiago Pastorino
0ed6e795fb
mir::Local is Copy we can pass it by value in these cases
2020-03-06 18:23:18 -03:00
Santiago Pastorino
b11cd0b587
PlaceRef<'a, 'tcx> -> PlaceRef<'tcx>
2020-03-04 18:25:03 -03:00
Santiago Pastorino
812e62f146
Make PlaceRef lifetimes of LocalAnalyzer::process_place be both 'tcx
2020-03-02 22:02:52 -03:00
Eduard-Mihai Burtescu
1a8f5efab8
rustc_codegen_ssa: only "spill" SSA-like values to the stack for debuginfo.
2020-02-09 16:39:23 +02:00
Santiago Pastorino
22a4827dcb
Place::ty_from takes local by value
2020-01-28 10:12:53 -03:00
Santiago Pastorino
b5b6be0ab7
Local field on PlaceRef and RootPlace is not a reference anymore
2020-01-28 10:12:53 -03:00
Santiago Pastorino
5d9b399044
Remove PlaceBase enum and make Place base field be local: Local
2020-01-10 09:08:25 +01:00
Santiago Pastorino
fd5aa32c35
Remove Static from PlaceBase
2020-01-10 09:08:24 +01:00
Vadim Petrochenkov
70f1d57048
Rename syntax_pos
to rustc_span
in source code
2020-01-01 09:15:18 +03:00
Mark Rousskov
a06baa56b9
Format the world
2019-12-22 17:42:47 -05:00
Matthew Jasper
3a19fbf95d
Add Rvalue::AddressOf to MIR
...
This operator creates a raw pointer to a Place directly, without first
creating a reference. See RFC #2582 for motivation.
The Rvalue is currently unused.
2019-12-18 20:09:10 +00:00
Eduard-Mihai Burtescu
a57aea88d4
rustc: expose the mir::Body reference lifetime from mir::ReadOnlyBodyCache ( #64736 fallout).
2019-12-03 13:04:28 +02:00
Paul Daniel Faria
b2fe254c98
Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, rename all body_cache back to body
2019-12-02 08:40:56 -05:00
Paul Daniel Faria
595d161d36
Remove BodyCache.body and rely on Deref as much as possible for ReadOnlyBodyCache
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
c42bdb8c74
Undo minor changes that weren't needed, fix one lifetime typo
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
e54c610f85
Fix compilation errors created during rebase
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
fc6b58d0a8
Simplify BodyCache impl and fix all remaining type errors in librustc_mir (lifetime errors still exist)
2019-12-02 08:35:08 -05:00
Paul Daniel Faria
2eed90a621
Account for new maybe_sideeffect helper that requires predecessors
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
c8c266a0fb
Convert &mut to & since the reference didn't need to be mutable
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
66279d12f9
Revert back to using FunctionCx's Body
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
16952cce01
Add Body back as field of FunctionCx, but under a different lifetime
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
3d68f5f3e7
Improved BodyCache body impl so it only returns a sharable ref, add new body_mut method, fix visit macros, simplify usage in codegen_ssa analyzer
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
30b1d9e798
Remove Body from FunctionCx, pass it along during librustc_codegen_ssa
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
649c73f96d
Simplify Cache wrapper to single type, impl Deref on it, fix all compilation errors in librustc_codegen_ssa
2019-12-02 08:30:30 -05:00
Eduard-Mihai Burtescu
563ed27c01
rustc: move debug info from LocalDecl and UpvarDecl into a dedicated VarDebugInfo.
2019-11-27 19:22:03 +02:00
Eduard-Mihai Burtescu
c58e6b5752
rustc_codegen_ssa: move local variable debuginfo to mir::debuginfo.
2019-10-31 20:00:16 +02:00
Santiago Pastorino
190802cfca
Pattern match over PlaceRef rather than Place
...
This prepares the code base for when projection is interned. Place's
projection field is going to be `&List<PlaceElem<'tcx>>` so we won't be
able to pattern match against it.
2019-10-22 10:33:30 -03:00
csmoe
64f61c7888
remove indexed_vec re-export from rustc_data_structures
2019-09-29 16:48:31 +00:00
csmoe
d20183dbbf
remove bit_set re-export from rustc_data_structures
2019-09-29 16:11:30 +00:00
varkor
e2e0f9af85
Rename sty
to kind
2019-09-25 15:50:04 +01:00
Santiago Pastorino
e73d189e4e
Use slice patterns to match projection base
2019-09-09 18:16:49 -03:00
Santiago Pastorino
e9c41148c0
Convert Place's projection to a boxed slice
2019-09-09 18:16:49 -03:00
Eduard-Mihai Burtescu
b565ece5d8
Remove redundant ty
fields from mir::Constant
and hair::pattern::PatternRange
.
2019-08-16 15:20:27 +03:00
Esteban Küber
bdd79b849e
tweak output and tests
2019-08-04 12:23:05 -07:00
Esteban Küber
387dcff796
review comments: clean up
2019-08-04 10:42:46 -07:00
Esteban Küber
db099fb491
Point to local place span on "type too big" error
2019-08-03 21:59:51 -07:00
Santiago Pastorino
795d96d87b
Place::as_place_ref is now Place::as_ref
2019-07-22 00:25:07 +02:00