170 Commits

Author SHA1 Message Date
Matt Ickstadt
430c92cc9a Use better cfg name for arm-linux tests 2016-11-12 15:52:59 -06:00
Matt Ickstadt
94c0d475bc Use correct lib name in qc test failure 2016-11-12 15:30:57 -06:00
Matt Ickstadt
9b4553de1c Add float quickcheck 2016-11-12 14:55:28 -06:00
Christopher Serr
53c19053e4 Fix a few clippy warnings 2016-10-16 13:53:31 +02:00
Jorge Aparicio
ab4d5e62fb fix the powerpc64le target
by selecting a CPU that's compatible with the instructions that `rustc`
generates
2016-10-14 09:59:21 -05:00
Jorge Aparicio
77b5865b04 fix more warnings 2016-10-10 20:21:11 -05:00
Jorge Aparicio
3fe4f1c687 fix warnings 2016-10-10 19:45:34 -05:00
Jorge Aparicio
14c32a0369 rename to compiler_builtins, add rust-lang/rust-ish crate attributes 2016-10-10 19:05:21 -05:00
Jorge Aparicio
622a760d91 add the compiler_builtins feature to src/lib.rs 2016-10-10 16:45:24 -05:00
Jorge Aparicio
5f5c973cbe set crate_name and crate_type in src/lib.rs 2016-10-10 16:43:38 -05:00
Jorge Aparicio
2056d001cf use test::black_box instead of ptr::*_volatile
both prevent LLVM from optimizing away the intrinsics but the former
doesn't produce an `intrinsics` binary that segfaults
2016-10-07 18:26:21 -05:00
Jorge Aparicio
d05514cb20 fix unsafe warnings 2016-10-07 18:19:40 -05:00
Jorge Aparicio
a02ecc8eef get profile.dev (-debug-assertions) + LTO working 2016-10-07 18:19:40 -05:00
Jorge Aparicio
c9e3feb5e3 insert more abort() calls where division by zero may occur 2016-10-07 18:19:40 -05:00
Jorge Aparicio
fbf1cc0b75 check that we don't have any call to panic in our implementations 2016-10-07 18:19:40 -05:00
Jorge Aparicio
9f4632c829 panic! -> abort
closes #79
2016-10-07 18:19:40 -05:00
Matt Ickstadt
e6bc8007dd Implement powi_f2 2016-10-03 11:20:42 -05:00
Matt Ickstadt
ab4e4bfd71 Initial implementation of multitester 2016-10-02 14:38:40 -05:00
Jorge Aparicio
7009fd238d Revert "Merge pull request #48 from mattico/add_float_quickcheck"
This reverts commit e34a6058df470e5b3d187c947ac41a294994c414, reversing
changes made to cab88e6133b0db9c6663ffd8b2f65cb35e8a9dda.
2016-09-30 19:12:17 -05:00
Matt Ickstadt
43d85fa5cb Add Quickcheck types for float tests 2016-09-30 14:29:52 -05:00
Matt Ickstadt
ca01aa45ff Cleanup add builtin assignments 2016-09-30 14:29:52 -05:00
Matt Ickstadt
fde45da332 Add floating point deconstruction helpers 2016-09-30 14:29:52 -05:00
Jorge Aparicio
cb9b1f82e3 add an opt-in cargo feature to build intrinsics from compiler-rt source
closes #63
cc #66
2016-09-29 16:06:24 -05:00
Alex Crichton
e7c804a9b0 Expand and refactor teting infrastructure
This commit moves over most of the testing infrastructure to in-tree docker
images that are all dispatched to from Travis (no other test configuration).
This allows versioning modifications to the test infrastructure as well as the
code itself. Additionally separate docker images allows for easy modification of
one without worrying about tampering of others as well as easy addition of new
targets by simply adding a new `Dockerfile`.

Additionally this commit bundles the master version of the `compiler-rt` source
repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt
library itself is compiled as a `cdylib` which is then dynamically located at
runtime and we look for symbols in. There's a few hoops here, but they currently
get the job done.

All tests now execute against both gcc_s and compiler-rt, and this
testing strategy is now all hidden behind a macro as well (refactoring
all existing tests along the way).
2016-09-28 22:09:55 -07:00
homunkulus
10146b3334 Auto merge of #73 - japaric:weak, r=japaric
put weak mem* symbols behind an opt-in Cargo feature

closes #64
cc #66
2016-09-22 23:59:48 +00:00
Jorge Aparicio
2dc91bd96c put weak mem* symbols behind an opt-in Cargo feature
closes #64
cc #66
2016-09-22 18:02:25 -05:00
homunkulus
bc07830e09 Auto merge of #71 - japaric:aeabi-aliases, r=japaric
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
Jorge Aparicio
2d630eedfd add missing aeabi aliases 2016-09-22 17:02:36 -05:00
Jorge Aparicio
bc61db2e36 don't test always against gcc_s
instead test half of the time against gcc_s and the other half test
against the native operation (\*).

(\*) Not all the targets have available a native version of the
intrinsics under test. On those targets we'll end up testing our
implementation against itself half of the time. This is not much of a
problem because we do several quickcheck runs per intrinsic.
2016-09-21 21:38:06 -05:00
Jorge Aparicio
7a56ac6bb4 armhf: don't compare our impls against gcc_s 2016-09-21 21:14:38 -05:00
Jorge Aparicio
294c6a93d8 avoid division overflow in idivmod test 2016-09-17 21:10:41 -05:00
Jorge Aparicio
656cd2b308 test our implementations against gcc_s
if it exposes the same intrinsics that we implement -- gcc_s doesn't
implement all the intrinsics for all the architectures.

closes #65
2016-09-16 15:53:14 -05:00
Jorge Aparicio
ae9d294297 use utility function to compare the repr of floats
follow up of #43
2016-08-21 11:24:58 -05:00
Jorge Aparicio
e5455d7f12 Merge pull request #49 from japaric/edge
qc: bias towards generation of edge cases
2016-08-21 11:03:44 -05:00
Matt Ickstadt
30428ec88f Use mem::swap to swap variables 2016-08-20 22:30:02 -05:00
Jorge Aparicio
e4dabb8c32 qc: bias towards generation of edge cases 2016-08-20 22:17:50 -05:00
Matt Ickstadt
fe3c35131f Implement soft float add builtins 2016-08-20 16:06:02 -05:00
Matt Ickstadt
35d68d8ab2 Move integer functions to separate module 2016-08-20 15:55:06 -05:00
Jorge Aparicio
f96d56dc37 Merge pull request #44 from Amanieu/sdiv
Add signed division functions
2016-08-19 09:16:53 -05:00
Amanieu d'Antras
59fe09c493 Add tests for ARM division builtins 2016-08-19 12:13:02 +01:00
Amanieu d'Antras
161234b8b3 Add signed division functions 2016-08-19 12:13:02 +01:00
Jorge Aparicio
3fddb6b427 rename muldi4 to muldi3
closes #42
2016-08-18 21:27:16 -05:00
Matt Ickstadt
22331947ea Disable mangling for msvc stack builtins
This prevents linker errors in test builds due to the `jmp` instruction in __alloca
2016-08-17 12:55:15 -05:00
Matt Ickstadt
7e238f9973 Use jmp to implement __alloca fallthrough 2016-08-17 12:11:38 -05:00
Matt Ickstadt
f0dbe4c07c Add x86_64 builtins 2016-08-16 19:55:17 -05:00
Jorge Aparicio
63a87352d8 add core_intrinsics feature gate 2016-08-15 21:08:04 -05:00
Jorge Aparicio
b193bf698d remove unused feature gates 2016-08-14 22:08:36 -05:00
Jorge Aparicio
ae75d02bdd use rlibc crate instead 2016-08-14 22:03:19 -05:00
Jorge Aparicio
a8c6135b38 exclude windows and macos 2016-08-14 22:01:15 -05:00
Jorge Aparicio
657a0cd18a add weak memcpy et al symbols
closes #28
2016-08-14 22:00:31 -05:00