Oliver Schneider
2f51310a80
clamp down on hacks in compiletest
2017-01-12 08:41:22 +01:00
Oliver Schneider
1f40819315
try to pin down the travis failure
2017-01-12 08:41:12 +01:00
Oliver Schneider
5d7b92a6e3
fix travis
2017-01-12 08:40:53 +01:00
Oliver Schneider
32cd8efb97
re-enable auxiliary tests for the host only
2017-01-12 08:40:16 +01:00
Scott Olson
d6e35fe46f
Add test for #95 .
2016-12-21 17:26:52 -08:00
Scott Olson
9e244251a0
Enable an old test that works now!
2016-12-17 01:58:03 -08:00
Scott Olson
0cc4535a58
This test appears to work on 32-bit now.
2016-12-17 01:52:26 -08:00
Scott Olson
142d971c82
Add regression test for write_primval bug.
2016-12-17 01:34:19 -08:00
Scott Olson
96b83ebb7c
Improve compiletest target detection.
2016-12-17 00:54:37 -08:00
Scott Olson
42239e69bf
Make layout SizeOverflow test trigger on i686.
2016-12-16 23:57:46 -08:00
Scott Olson
0591683b73
Stop before trans so I can test non-x86_64 targets.
...
I had problems when it tried to link outputs for targets other than my
host.
This re-breaks tests with auxiliary builds. I'm not sure what to do
about those right now.
2016-12-16 23:47:43 -08:00
Scott Olson
33223fdd76
Allow compiletest to see symlinked targets.
2016-12-16 23:43:58 -08:00
Scott Olson
6ec3d65068
Revert "Revert "rustup to rustc 1.15.0-dev ( ace092f56
2016-12-13)""
2016-12-16 17:10:16 -08:00
Scott Olson
0deabf9c00
Revert "rustup to rustc 1.15.0-dev ( ace092f56
2016-12-13)"
2016-12-15 01:16:06 -08:00
Oliver Schneider
9ec97bac71
enable auxiliary builds
2016-12-14 17:06:36 +01:00
Oliver Schneider
8b8c7430f1
re-use mir-opt
compiletest instead of rolling our own
2016-12-14 17:06:36 +01:00
Scott Olson
fc3e1c0064
compiletest: Don't automatically enable MIRI_LOG=trace.
2016-11-26 23:21:25 -08:00
Oliver Schneider
986b3a07c2
layout computation can fail, make it fail with a miri error
2016-11-18 10:38:07 +01:00
Oliver Schneider
26ccc1e4bc
add a step counter that can be changed during interpretation
2016-11-18 10:38:07 +01:00
Oliver Schneider
51ff9fdaf6
deallocate all locals on function exit and transitively freeze constants through pointers
2016-11-18 10:05:55 +01:00
Oliver Schneider
4ebf7bfea6
rustup allows one to install the rust source, that's obviously not a target
2016-11-17 11:31:53 +01:00
Oliver Schneider
fd68670c0a
merge closures and function and implement some closure vtable cases
2016-11-15 17:19:37 +01:00
Oliver Schneider
64155ffd10
implement fn item -> trait object conversion
2016-11-15 16:32:21 +01:00
Oliver Schneider
1c5c6cd078
allow zsts in the zero case of a nullable pointer optimized enum
2016-11-15 16:15:17 +01:00
Oliver Schneider
5ee75c0805
don't print in the binop tests
2016-11-15 15:24:22 +01:00
Oliver Schneider
4748587a77
fix creation of simd types
2016-11-15 15:23:19 +01:00
Oliver Schneider
e2091ff934
add more atomic intrinsics
2016-11-15 15:19:38 +01:00
Oliver Schneider
f77a0ab10b
fix writing int->ptr transmuted primvals to memory
2016-11-15 15:18:49 +01:00
Oliver Schneider
13f22f8344
print traces only when not running on the rust run-pass test suite (since tracing is slow)
2016-11-15 14:33:07 +01:00
Oliver Schneider
14ff6411f0
make sure ByVal pointers act just like ByRef to a pointer
2016-11-15 14:12:49 +01:00
Oliver Schneider
511fa40d23
add test for int -> fn ptr cast
2016-11-15 14:11:00 +01:00
Oliver 'ker' Schneider
d42a7d021d
fix null optimizations for smaller than pointer enums
...
fixes #76
2016-11-11 13:10:47 +01:00
Oliver 'ker' Schneider
921f5af1fe
ensure that integers cast to pointers will never point at a valid alloc, not even the zst alloc
2016-11-10 19:20:11 +01:00
Scott Olson
33b1676bda
Merge pull request #75 from oli-obk/master
...
implement more drop stuff
2016-11-06 01:29:14 -08:00
Paul Lietar
86062ef930
Read discriminant as a signed integer if specified by layout.
...
This ensures it gets sign extended correctly.
Fixes #78
2016-11-05 15:41:19 +00:00
Oliver Schneider
07c752cc82
fix the block processing for the drop_in_place intrinsic
2016-11-04 17:55:06 +01:00
Oliver Schneider
893f16389e
run drop on array elements
2016-11-04 17:34:33 +01:00
Oliver Schneider
5ef7924aa9
call drop for all elements of an owned slice
2016-11-04 16:51:43 +01:00
Oliver Schneider
c4c8764f53
generate a drop method pointer in the vtable and process it
2016-11-04 16:38:04 +01:00
Oliver Schneider
0420c27c8e
fix drop ordering and forward fat pointer extras to fields
...
this doesn't yet use the fat pointer extras
2016-11-04 15:55:05 +01:00
Oliver Schneider
8003c570d8
don't panic on pointer to value comparison in primvals
2016-11-04 15:49:14 +01:00
Oliver Schneider
73d7f1d41b
implement drop for NonZero optimized enums
2016-11-04 09:34:54 +01:00
Oliver Schneider
ff95efc525
Revert "Fix tests broken by std::vec::SetLenOnDrop."
...
This reverts commit 366c793306
.
2016-11-04 09:15:59 +01:00
Oliver Schneider
2a35b3e322
call user defined drop impls
2016-11-03 17:32:37 +01:00
Oliver Schneider
e406099348
sanity check that boxes of zsts don't deallocate the zst allocation
2016-11-03 16:01:14 +01:00
Scott Olson
c938553a10
Add test for 39bb1254d
.
2016-10-18 21:45:11 -06:00
Scott Olson
6503148589
Optimize reads of field projections of ByValPairs.
...
This helps in the case of field projections of the results of checked
binary operations. E.g.:
_1 = CheckedAdd(const 1i32, const 2i32);
assert(!(_1.1: bool), "attempt to add with overflow" -> bb1
Previously, the `_1.1` field projection lvalue would force_allocate `_1`
so it could read the memory in the old-style way. Now checked math with
its assertions will not allocate at all.
The oom2.rs compile-fail test had to be re-written, because the old
version of it no longer allocates _at all_ (yay!), so it would hit the
stack depth limit instead, from recursion.
2016-10-16 19:58:22 -06:00
Scott Olson
b1094f6c1e
Deallocate primval conversion hack allocs.
...
It's a hack, sure, but it should learn some manners.
2016-10-16 03:21:41 -06:00
Scott Olson
49e6c57ef9
Do not pre-allocate local variables.
...
Thanks to the `Value` locals refactoring, now primitive locals (ints,
floats, chars, bools, and the like) will not require `Allocation`s at
all, and locals that are never initialized at all because of conditional
control flow won't be wasting memory.
2016-10-15 23:31:42 -06:00
Scott Olson
6c463b7562
Hold an Lvalue for the return pointer in a frame.
...
Previously ReturnPointer was just the first slot in the locals array,
which had type `Vec<Pointer>`. But after my recent refactoring, locals
is `Vec<Value>` and it became increasingly hacky to pull a pointer out
of the first slot to be the value. Besides, that hack wouldn't allow
ReturnPointer to ever be an `Lvalue::Local`, referring directly to a
local on a higher stack frame.
Now ReturnPointer has no presence in the locals array, instead being
upgraded to its own field on `Frame`.
This introduces a couple of new hacks, detailed by some of my FIXME
comments, so that I could get the tests passing again and commit. More
commits coming soon should clean up these hacks without much trouble,
and overall I feel that the code is converging on a cleaner, more
efficient design.
2016-10-15 19:48:30 -06:00