Jannis Christopher Köhl
f29533b4e0
Small documentation changes
2022-11-07 10:35:25 +01:00
Jannis Christopher Köhl
efc7ca8c7d
Use ParamEnv consistently
2022-11-07 10:35:25 +01:00
Jannis Christopher Köhl
de69d088a4
Explicitly match all terminators
2022-11-07 10:35:24 +01:00
Jannis Christopher Köhl
d86acdd72a
Prevent propagation of overflow if overflow occured
2022-11-07 10:35:24 +01:00
Jannis Christopher Köhl
5b7b309c60
Improve documentation of assumptions
2022-11-07 10:35:24 +01:00
Jannis Christopher Köhl
062053ba79
Fix unimplemented binary_ptr_op
2022-11-07 10:35:24 +01:00
Jannis Christopher Köhl
274a49132b
Improve documentation, plus some small changes
2022-11-07 10:35:23 +01:00
Jannis Christopher Köhl
931d99f61f
Make overflow handling more precise
2022-11-07 10:35:23 +01:00
Jannis Christopher Köhl
be9013f02b
Make overflow flag propagation conditional
2022-11-07 10:35:23 +01:00
Jannis Christopher Köhl
890fae9c60
Fix rebased CastKind
2022-11-07 10:35:22 +01:00
Jannis Christopher Köhl
aaa35b3e48
Add comment for the current retag situation
2022-11-07 10:35:22 +01:00
Jannis Christopher Köhl
5696d06e22
Use the same is_enabled as the current const prop
2022-11-07 10:35:21 +01:00
Jannis Christopher Köhl
3c0f3b04b5
Only assume Stacked Borrows if -Zunsound-mir-opts is given
2022-11-07 10:35:21 +01:00
Jannis Christopher Köhl
111324e17c
Prevent registration inside references if target is !Freeze
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
4478a87018
Fix formatting
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
7ab1ba95de
Remove Unknown state in favor of Value(Top)
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
1765587846
Only track (trivially) freeze types
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
b5063ab0e5
Make more assumptions explicit
2022-11-07 10:35:19 +01:00
Jannis Christopher Köhl
2f66e9417f
Flood with bottom for Deinit, StorageLive and StorageDead
2022-11-07 10:35:19 +01:00
Jannis Christopher Köhl
eab77320e6
Handle NonDivergingIntrinsic and CopyNonOverlapping
2022-11-07 10:35:19 +01:00
Jannis Christopher Köhl
f99950f6ae
Update test results after rebase
2022-11-07 10:35:18 +01:00
Jannis Christopher Köhl
c56e99cdba
Fix typo
2022-11-07 10:35:18 +01:00
Jannis Christopher Köhl
13b70599c1
Only allow registration of scalars for now
2022-11-07 10:35:16 +01:00
Jannis Christopher Köhl
bc82c13e97
Track Scalar instead of ScalarInt for const prop
2022-11-07 10:35:16 +01:00
Jannis Christopher Köhl
817c27744d
Handle StorageLive
2022-11-07 10:35:16 +01:00
Jannis Christopher Köhl
e2ddf8a6e5
Add comment about downcast projection element
2022-11-07 10:35:15 +01:00
Jannis Christopher Köhl
1e5ca57014
Use StorageDead and Deinit to flood place
2022-11-07 10:35:15 +01:00
Jannis Christopher Köhl
904adcac0f
Flood place on drop
2022-11-07 10:35:15 +01:00
Jannis Christopher Köhl
2113e45488
Remove superfluous line
2022-11-07 10:35:14 +01:00
Jannis Christopher Köhl
2e4d0820d2
Add more documentation
2022-11-07 10:35:14 +01:00
Jannis Christopher Köhl
fe84bbf844
Add tracking of unreachability
2022-11-07 10:35:13 +01:00
Jannis Christopher Köhl
16dedba1c8
Ignore terminators explicitly
2022-11-07 10:35:13 +01:00
Jannis Christopher Köhl
8a789ce009
Reject registration of downcasts for now
2022-11-07 10:35:12 +01:00
Jannis Christopher Köhl
47a00d5337
Flood with bottom instead of top for unreachable branches
2022-11-07 10:35:12 +01:00
Jannis Christopher Köhl
ad99d2e15d
Move handling of references and simplify flooding
2022-11-07 10:35:11 +01:00
Jannis Christopher Köhl
3f98dc7838
Clarify place expressions vs place objects
2022-11-07 10:35:11 +01:00
Jannis Christopher Köhl
e75ad93d95
Begin a semi-formal argument for correctness
2022-11-07 10:35:10 +01:00
Jannis Christopher Köhl
292869493c
Add additional flooding when assigning a value and corresponding test
2022-11-07 10:35:10 +01:00
Jannis Christopher Köhl
bb1639769e
Clarify registration and tracking of references
2022-11-07 10:35:10 +01:00
Jannis Christopher Köhl
56ff16d19f
Fix spelling
2022-11-07 10:35:09 +01:00
Jannis Christopher Köhl
d0afe6833d
Try field type normalization instead of forcing it
2022-11-07 10:35:08 +01:00
Jannis Christopher Köhl
4f9c30fb67
Add initial version of value analysis and dataflow constant propagation
2022-11-07 10:35:08 +01:00
bors
ca08a32655
Auto merge of #103218 - CastilloDel:infer, r=jackh726
...
Remove #![allow(rustc::potential_query_instability)] from rustc_infer
Related to #84447
This PR probably needs to be benchmarked to check for regressions.
2022-11-07 07:38:05 +00:00
Ralf Jung
ccc6ffb03d
try to make things faster when only ptr provenance can exist
2022-11-07 08:23:14 +01:00
lcnr
80e4e72fcd
fully move on_unimplemented to error reporting
2022-11-07 08:10:25 +01:00
wanghaha-dev
009f80b987
Modify comment syntax error
2022-11-07 14:33:33 +08:00
jeremyd2019
6994651b6c
fix debuginfo for windows_gnullvm_base.rs
...
These lines (including the FIXME comment) were added to windows_gnu_base.rs in cf2c492ef8 but windows_gnullvm_base.rs was not updated. This resulted in an error `LLVM ERROR: dwo only supported with ELF and Wasm` attempting to build on aarch64-pc-windows-gnullvm.
Signed-off-by: Jeremy Drake <github@jdrake.com >
2022-11-06 17:29:14 -08:00
Yuki Okushi
02a0bdee0d
Rollup merge of #104066 - TimNN:riscv-layout, r=nikic
...
LLVM 16: Update RISCV data layout
The RISCV data layout was changed in 974e2e690b .
This updates all `riscv64*` targets, though I don't really know what the difference between the `gc` and `imac` ones is.
Passes `x test codegen` at LLVM head and with the currently bundled LLVM version. Without this patch, some tests fail with:
> error: internal compiler error: compiler/rustc_codegen_llvm/src/context.rs:192:13: data-layout for target `riscv64gc-unknown-none-elf`, `e-m:e-p:64:64-i64:64-i128:128-n64-S128`, differs from LLVM target's `riscv64` default layout, `e-m:e-p:64:64-i64:64-i128:128-n32:64-S128
2022-11-07 09:46:28 +09:00
Yuki Okushi
d6c41a23b9
Rollup merge of #104059 - Rejyr:rustc_middle-lint-typo, r=petrochenkov
...
Fix typo in `rustc_middle/lint.rs`
2022-11-07 09:46:27 +09:00
Yuki Okushi
06e261aaf5
Rollup merge of #104045 - Ayush1325:type_array, r=nikic
...
Add type_array to BaseTypeMethods
Moved `type_array` function to `rustc_codegen_ssa::BaseTypeMethods` trait. This allows using normal `alloca` function to create arrays as suggested in https://github.com/rust-lang/rust/pull/104022 .
Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com >
2022-11-07 09:46:26 +09:00