Commit Graph

2049 Commits

Author SHA1 Message Date
Alex Crichton
b944780250 Bump to 0.1.7 2019-02-27 12:39:34 -08:00
Jordan Rhee
648db7498b Bump version to 0.1.6 2019-02-27 11:45:14 -08:00
Jordan Rhee
cab813bf74 Fix undefined symbol errors on windows/arm
Fix undefined symbol linker errors when building rust for windows/arm
by excluding unneeded symbols. The errors are:

  = note: lib.def : error LNK2001: unresolved external symbol __aeabi_memclr4
  lib.def : error LNK2001: unresolved external symbol __aeabi_memclr8
  lib.def : error LNK2001: unresolved external symbol __aeabi_memmove4
  lib.def : error LNK2001: unresolved external symbol __aeabi_memmove8
2019-02-27 11:39:49 -08:00
MikaelUrankar
55f0ab112a FreeBSD arm needs clear_cache.c 2019-02-02 19:52:41 +01:00
Cyryl Płotnicki
2b8e3f6029 Fix compilation on new nightly.
Compilation on rustc 1.33.0-nightly (c76f3c374 2019-01-18) failed with
```
error: the feature `cfg_target_vendor` has been stable since 1.33.0 and no longer requires an attribute to enable
  --> src/lib.rs:19:12
   |
19 | #![feature(cfg_target_vendor)]
   |            ^^^^^^^^^^^^^^^^^
   |
```

Removed the attribute to make it compile.
2019-01-20 09:33:55 +00:00
Lokathor
c48d0c3d99 Perform the correct version bump 2019-01-07 12:08:18 -07:00
Alex Crichton
d73e6e61cd Merge pull request #270 from denzp/master
Don't build compiler-rt for NVPTX
2019-01-07 11:11:19 -06:00
Denys Zariaiev
deb1cb51d1 Don't build compiler-rt for NVPTX 2019-01-07 17:16:09 +01:00
Alex Crichton
ac6dbd356a Merge pull request #267 from Lokathor/master
Adding __clzsi2
2019-01-07 09:36:45 -06:00
Lokathor
8b002dcd52 Attempt to use intrinsics! 2019-01-04 19:17:02 -07:00
Alex Crichton
905869e4d5 Bump to 0.1.4 2019-01-03 13:55:02 -08:00
Yu Ding
c5dc23d75d Fix SGX target_env collision
Signed-off-by: Yu Ding <dingelish@gmail.com>
2019-01-03 12:53:08 -08:00
Lokathor
a68950646f Move the test to be a standard test. 2019-01-02 18:50:11 -07:00
Alex Crichton
b549e21009 Bump to 0.1.3 2019-01-02 10:21:41 -08:00
akashfortanix
f1971b5b71 expose ceil, floor and trunc on sgx-target 2018-12-27 19:13:50 +05:30
Lokathor
d422c9a587 Okay we'll process outputs as all u32 2018-12-21 18:55:01 -07:00
Lokathor
fe9b17acec Rust and LLVM don't spec the same output types 2018-12-21 18:47:03 -07:00
Lokathor
e5123b4625 forgot the little .0 part 2018-12-21 18:36:26 -07:00
Lokathor
e495054f89 64, not 128! 2018-12-21 18:21:47 -07:00
Lokathor
734b5c261a We can't accept usize directly, i guess accept MyU64? 2018-12-21 18:20:59 -07:00
Lokathor
a57c899eb1 trying a test case for clzsi2 2018-12-21 18:10:45 -07:00
Lokathor
86de741356 Move clzi2 into the int module 2018-12-21 18:02:12 -07:00
Lokathor
9e1de34b4e modify to fit into standard rustfmt output 2018-12-20 17:53:10 -07:00
Lokathor
1a1dd89a32 start of __clzsi2 2018-12-20 17:47:57 -07:00
Alex Crichton
b29ccbb6e9 Bump to 0.1.2 2018-11-26 12:09:10 -08:00
Alex Crichton
efe1b3e486 Merge remote-tracking branch 'origin/rust-llvm-release-8-0-0-v2' 2018-11-26 12:08:13 -08:00
Alex Crichton
693a263660 Bump to 0.1.1 2018-11-21 12:57:54 -08:00
Alex Crichton
018fa133fd Add a whitelist of included files in packaging 2018-11-21 12:57:39 -08:00
Alex Crichton
08db8f31d3 Add metadata for where compiler-rt is located
Compiler crates will need to use this!
2018-11-21 12:57:39 -08:00
Alex Crichton
9690d3a17e Try to fix Windows build issue 2018-11-21 11:56:04 -08:00
Alex Crichton
d90aa8c244 Add some crate metadata 2018-11-21 11:09:24 -08:00
Alex Crichton
9a451dbcda Merge pull request #264 from alexcrichton/dep-of-std
Prepare for publication to crates.io
2018-11-21 13:07:20 -06:00
Alex Crichton
e367858b0e Remove unknown feature 2018-11-21 11:07:07 -08:00
Alex Crichton
1af471e00b Use nm on OSX
Looks like it may be fixed now?
2018-11-21 10:48:58 -08:00
Alex Crichton
9fdc957019 Use panic=abort for tests
Try to fix issues with undefined `rust_eh_personality` symbols
2018-11-21 10:19:31 -08:00
Alex Crichton
59fb3fd69c Prepare for publication to crates.io
This commit prepares to publish the compiler-builtins crate to crates.io
in order for the standard library to directly depend on it from
crates.io in rust-lang/rust#56092
2018-11-21 10:01:20 -08:00
Jethro Beekman
3880e404a8 Add SGX target 2018-11-21 14:07:57 +05:30
Jethro Beekman
6582b145b8 Add f32 versions of WebAssembly math functions 2018-11-21 14:07:03 +05:30
Alex Crichton
330bb3a744 Update for next LLVM 8 version 2018-11-09 12:52:21 -08:00
Alex Crichton
dbdcd66e35 Revert "Conversion from a wider to a narrower IEEE-754 floating-point type"
This reverts commit baab4fd89cdd945e46fed31166e5dcad7224ed87.
2018-10-30 10:51:11 -07:00
Alex Crichton
b387ac07b1 Update libm submodule 2018-10-24 01:01:14 -07:00
Jorge Aparicio
5c6fd41b3d merge [features] tables 2018-10-24 00:18:30 +02:00
Alex Crichton
9b03920fe1 Optimize intrinsics on wasm32
Profiling a recent demo I was playing with on `wasm32-unknown-unknown`
pointed me to the surprising result that 15% of the execution time was
in the `sqrt` intrinsic (there's a lot of math here). Upon investigation
I remembered that wasm (unconditionally) has a native `f32.sqrt`
instruction!

I was then subsequently confused that a simple `f.sqrt()` actually
codegens to use `f32.sqrt` in Rust, but I later realized that the
implementations of intrinsics in this library often use other intrinsics
to implement them. That means that the real intrinsic here, `acos`,
internally called `sqrt` at some point but wasn't using the optimized
implementation!

To help fix this situation this PR is intended on providing the
infrastructure for optimized implementations (via code generation) to be
used for each intrinsic. I've gone thorugh the various math instructions
that wasm has available and updated each of the intrinsic
implementations in this crate to optionally use the LLVM intrinsic
versions, which are known to unconditionally compile down to a single
instruction (unlike the arbitrary platform, where we don't know what it
will compile down to!).

To do this I created a new macro to wrap the invocation of LLVM
intrinsics. Invoking LLVM intrinsics is turned off by default (through a
new and on-by-default feature, `stable`). When the `stable` feature is
disabled, however, then the wasm-target specifically will enable usage
of the LLVM intrinsics. I've additionally added a CI builder which
should verify that these continue to build on Travis.

After this I intended to update the submodule in the `compiler-builtins`
repository so we can pull in the optimized implementation there, and
`compiler-builtins` naturally won't set `feature = "stable"` when
compiling so all the intrinsics should get compiled in by default. After
a further update of `the libcompiler_builtins` submodule in
rust-lang/rust we should be good to go!
2018-10-11 14:52:09 -07:00
Paolo Teti
45a42b5b89 Conversion from a wider to a narrower IEEE-754 floating-point type
Adds generic conversion from a wider to a narrower IEEE-754
floating-point type.

Implement `__truncdfsf2` and `__truncdfsf2vfp` and associated test-cases.
2018-09-17 19:53:04 +02:00
Alex Crichton
e2a5e16b9e Merge pull request #261 from paoloteti/fix-travis-ci
Attempt to fix TravisCI
2018-09-14 09:17:36 -07:00
Paolo Teti
620a8d4272 Apple-darwin: set DEBUG_LTO_BUILD_DOESNT_WORK
Temporary workaround for the well known
"undefined references problem for debug-assertions+lto" (#79)
2018-09-14 09:40:34 +02:00
Paolo Teti
c03769a47e panic_handler is now stable
Fixes the following warning:

"warning: the feature `panic_handler` has been stable since
1.30.0 and no longer requires an attribute to enable"
2018-09-13 10:25:59 +02:00
Alex Crichton
84523d81a1 Merge pull request #259 from paoloteti/cc-rs
Remove superfluous cc flags
2018-09-09 10:44:02 -07:00
Paolo Teti
296f04fe63 Remove unused variable target_arch_arm
Previous commit makes this variable unused
2018-09-08 19:04:09 +02:00
Paolo Teti
66d52cf01d Remove superfluous cc flags
Latest `cc-rs` already manage all arm/thumb flags, so We can
safely remove this piece of code.
2018-09-08 17:41:26 +02:00