Luqman Aden
0f860c2977
[MIR] Handle FatPtr in mir::constant::trans_constval.
2015-12-19 09:58:11 -05:00
Simonas Kazlauskas
b3720ea933
Implement translation for ConstVal::{Array,Repeat}
2015-12-15 12:25:09 +02:00
Simonas Kazlauskas
a5e7a61c49
Implement references to functions and constants
2015-12-15 12:25:05 +02:00
Oliver Schneider
9a63bb6661
move ConstVal -> ValueRef translation to trans::consts
2015-12-08 14:59:45 +01:00
bors
eb1d018c01
Auto merge of #25570 - oli-obk:const_indexing, r=nikomatsakis
...
This PR allows the constant evaluation of index operations on constant arrays and repeat expressions. This allows index expressions to appear in the expression path of the length expression of a repeat expression or an array type.
An example is
```rust
const ARR: [usize; 5] = [1, 2, 3, 4, 5];
const ARR2: [usize; ARR[1]] = [42, 99];
```
In most other locations llvm's const evaluator figures it out already. This is not specific to index expressions and could be remedied in the future.
2015-12-01 19:47:38 +00:00
Michael Woerister
bbe1d28496
Move the core MIR datastructures to librustc.
...
This is done mostly so that we can refer to MIR types in csearch and other metadata related area.
2015-11-30 10:03:33 +01:00
Michael Woerister
c533902285
MIR: Add pass that erases all regions right before trans
2015-11-18 17:26:24 +01:00
Oliver Schneider
6683fa4d42
allow indexing into constant arrays
2015-11-18 10:57:52 +01:00
Ariel Ben-Yehuda
b9b45a0e96
address review comments
2015-11-14 00:09:36 +02:00
Ariel Ben-Yehuda
dcb64b52a2
represent fat ptr operands as 2 separate pointers
...
this does add some complexity, but to do otherwise would require unsized
lvalues to have their own allocas, which would be ugly.
2015-11-13 22:47:02 +02:00
Björn Steinbrink
b0d7338d6d
[MIR trans] Add support for SwitchInt
2015-11-09 16:54:58 +01:00
Niko Matsakis
02017b30eb
New trans codepath that builds fn body from MIR instead.
2015-11-03 04:35:00 -05:00