Paul Daniel Faria
6123478f2a
Fix issues caused during rebasing
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
38bd3a2342
Use new HashStable proc macro
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
acb90eb014
Fix tidy issues
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
9978574c9e
Fix rebasing errors, convert some BodyCache::body() calls to reborrows
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
64654ce1f1
Fix type errors created during rebasing
2019-12-02 08:42:24 -05:00
Paul Daniel Faria
598797c6e7
Remove unchecked inline attribute, remove unused functions, make chache mod private again
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
c6354e9839
Remove inline attributes that hadn't been profiled, unexport Cache since it no longer needs to be public
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
245abc49be
Fix type errors cause during rebasing
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
05dc5e9f47
Compute predecessors in mir_build query and use existing cache for generating ReadOnlyBodyCache, remove unneeded fns
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
ed90818ac8
Remove files created during conflict resolution
2019-12-02 08:40:56 -05:00
Paul Daniel Faria
51b06656da
Fix typos caused during rebase
2019-12-02 08:40:56 -05: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
ab657e3b6b
Fix typo
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
67b7a78231
Fix tidy errors
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
35590b5cc8
Fix typos caused during rebase
2019-12-02 08:37:23 -05:00
Paul Daniel Faria
4de31b26d1
Fix remaining compilation issues
2019-12-02 08:37:04 -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
38c0887c76
Fix remaining Body -> (ReadOnly)BodyCache type errors in librustc_mir outside of librustc_mir/transform
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
3642a71da2
Fix typo caused by rebasing
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
0a19371243
Add predecessors fn to ReadOnlyBodyCache, fix more Body -> (ReadOnly)BodyCache type errors
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
26f1c01ff7
Add read_only fn to BodyCache<&mut...> impl, fix more Body -> (ReadOnly)BodyCache type errors
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
ab98c595ea
Fix a large number of Body -> (ReadOnly)BodyCache type errors, add predecessor_locations fn to ReadOnlyBodyCache
2019-12-02 08:31:35 -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
Paul Daniel Faria
c0592faa67
Move predecessor cache outside of Body, use wrapper types to manage Cache and Body (WIP, amend this commit)
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
9b335ce1a6
Move predecessors cache back to its own type
...
This ensures that the cache can be properly ignored during encoding and decoding.
Fix panics that arose due to lack of encoding
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
22bc8a01c1
Add back cache invalidation to basic_blocks_and_local_decls_mut
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
52cc85f008
Address nits and remove unneeded pass
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
94414ac7bb
Address excessive line length that was triggering warning during linting
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
ad734680af
Move predecessors cache invalidation back to basic_blocks_mut, add a couple more ensure_predecessors to prevent panics
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
8e8c97e5fd
Ensure predecessors are recomputed at critical points, fixes panics
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
570e4182e8
Address linting errors caught by CI
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
e1afa519e8
Fix Mir visitor macro to ensure it calls the proper method to invalidate the predecessors cache
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
2b31456068
Add pass to ensure predecessors cache is generated after optimization
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
f534d9f8c4
Stop invalidating predecessors cache when accessing unique basic block, invalidate cache when accessing unique terminator
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
ce29f43f52
Get rid of old comment
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
b5240596d2
Inline cache impl into Body, rename predecessor fns, change output of predecessors_for to slice
2019-12-02 08:30:29 -05:00
Paul Daniel Faria
c16ef6b21d
Remove interior mutability in mir predecessors cache
2019-12-02 08:30:29 -05:00
bors
2da942f328
Auto merge of #66874 - RalfJung:miri-assert-panic, r=oli-obk
...
Miri engine: proper support for `Assert` MIR terminators
This puts down the basis for https://github.com/rust-lang/miri/issues/1070 , and I also did some clean-up. The Miri side of this is at https://github.com/rust-lang/miri/pull/1084 .
r? @oli-obk
2019-12-02 11:43:50 +00:00
Ralf Jung
ff5fcac6c2
miri: add throw_machine_stop macro
2019-12-02 10:59:06 +01:00
bors
4af3ee8ee2
Auto merge of #66950 - RalfJung:rollup-12d0zx8, r=RalfJung
...
Rollup of 5 pull requests
Successful merges:
- #66245 (Conditional compilation for sanitizers)
- #66654 (Handle const-checks for `&mut` outside of `HasMutInterior`)
- #66822 (libunwind_panic: adjust miri panic hack)
- #66827 (handle diverging functions forwarding their return place)
- #66834 (rustbuild fixes)
Failed merges:
r? @ghost
2019-12-02 08:35:24 +00:00
Ralf Jung
910e83eab2
Rollup merge of #66834 - infinity0:master, r=Mark-Simulacrum
...
rustbuild fixes
When upgrading Debian's rustc to 1.38 I needed these patches:
(1) In order to cross-compile rustc 1.38 and take it through the full rustbuild process including install, I needed the first patch.
(2) In order to build rustc 1.38 using rustc 1.38 itself I need to set --cap-lints warn, otherwise I get this error:
~~~~
error: unnecessary `unsafe` block
--> src/bootstrap/builder.rs:148:19
|
148 | name: unsafe { ::std::intrinsics::type_name::<S>() },
| ^^^^^^ unnecessary `unsafe` block
|
note: lint level defined here
--> src/bootstrap/lib.rs:107:9
|
107 | #![deny(warnings, rust_2018_idioms, unused_lifetimes)]
| ^^^^^^^^
= note: `#[deny(unused_unsafe)]` implied by `#[deny(warnings)]`
error: aborting due to previous error
error: could not compile `bootstrap`.
~~~~
In order to set --cap-lints warn however, I need bootstrap.py not to clobber RUSTFLAGS. (This worked previously, not sure if it was broken intentionally but we would like support for it.)
2019-12-02 09:34:15 +01:00