Commit Graph

42 Commits

Author SHA1 Message Date
Dan Gohman
aeb9161e2c Update no_std support for Rust 2018 Edition.
With Rust 2018 Edition, the `mod std` trick to alias `core` names to
`std` no longer works, so switch to just having the code use `core`
explicitly.

So instead, switch to just using `core::*` for things that in core.
This is more consistent with other Rust no_std code. And it allows
us to enable `no_std` mode unconditionally in the crates that support
it, which makes testing a little easier.

There actually three cases:

 - For things in std and also in core, like `cmp`: Just use them via
   `core::*`.

 - For things in std and also in alloc, like `Vec`: Import alloc as std, as
   use them from std. This allows them to work on both stable (which
   doesn't provide alloc, but we don't support no_std mode anyway) and
   nightly.

 - For HashMap and similar which are not in core or alloc, import them in
   the top-level lib.rs files from either std or the third-party hashmap_core
   crate, and then have the code use super::hashmap_core.

Also, no_std support continues to be "best effort" at this time and not
something most people need to be testing.
2019-01-14 21:48:15 -08:00
Dan Gohman
9eba81a8d9 Update clippy settings and fix a few clippy warnings. 2019-01-07 14:48:02 -08:00
Benjamin Bouvier
03c22ed67a Remove warnings in tests; 2019-01-03 12:14:39 -08:00
Dan Gohman
831d033471 Add a shrink_to_fit function to PrimaryMap. 2019-01-02 12:01:36 -08:00
Dan Gohman
29edc3fe50 Make ListPool's alloc fill new memory with reserved values.
This makes it harder to misuse, as 0 could be confused for a valid value.
2019-01-02 11:59:22 -08:00
Dan Gohman
8a11bd6af7 Remove BoxedSlice's next_key() function, which is unneeded.
`BoxedSlice` does not support appending elements, so it isn't useful to
look up the next key.
2019-01-02 11:58:44 -08:00
Muhammad Mominul Huque
effe6c04e4 Update to Rust 2018 edition (#632)
* initial cargo fix run

* Upgrade cranelift-entity crate

* Upgrade bforest crate

* Upgrade the codegen crate

* Upgrade the faerie crate

* Upgrade the filetests crate

* Upgrade the codegen-meta crate

* Upgrade the frontend crate

* Upgrade the cranelift-module crate

* Upgrade the cranelift-native crate

* Upgrade the cranelift-preopt crate

* Upgrade the cranelift-reader crate

* Upgrade the cranelift-serde crate

* Upgrade the cranelift-simplejit crate

* Upgrade the cranelift or cranelift-umbrella crate

* Upgrade the cranelift-wasm crate

* Upgrade cranelift-tools crate

* Use new import style on remaining files

* run format-all.sh

* run test-all.sh, update Readme and travis ci configuration
fixed an AssertionError also

* Remove deprecated functions
2018-12-26 09:49:05 -08:00
Bruce Mitchener
4f8753fa11 Fix typos. 2018-12-24 10:03:22 -08:00
Nicholas Nethercote
46d9a3cd1a Use an FxHashMap in RegDiversions.
Because it's hot and the number of entries can reach the 1000s, so
linear insertion and search is bad.

This reduces runtime for `sqlite` and `UE4Game-HTML5-Shipping` by 3-4%,
and a couple of other benchmarks (`sqlite`, `godot`, `clang`) by smaller
amounts.

It also increases runtime for `mono` and `tanks` by about 1%; this seems
to be due to incidental changes in which functions are inlined more than
algorithmic changes.
2018-12-17 21:36:06 -08:00
Dan Gohman
68a13646f9 Add a from_u32 function to EntityRef.
This eliminates the need for casting in common cases.
2018-12-11 15:40:24 -05:00
Dan Gohman
b841652539 Add a Slice to supplement PrimaryMap. 2018-12-11 15:40:24 -05:00
Dan Gohman
5b03581442 Tidy up use declaration syntax. 2018-12-11 15:40:24 -05:00
Dan Gohman
605f34257b Fix a missing #[test]. 2018-12-11 15:40:24 -05:00
Dan Gohman
42e35c4c57 Implement PrimaryMap::with_capacity. 2018-12-11 15:40:24 -05:00
Dan Gohman
c287231720 Implement FromIterator for PrimaryMap. 2018-12-11 15:40:24 -05:00
Dan Gohman
e623da51c6 Suppress dead-code warnings on functions expanded from entity_impl!. 2018-12-11 15:40:24 -05:00
Dan Gohman
91477d21c8 Add an as_u32() member to entity_impl types.
This allows us to avoid a lot of casting indices back to u32.
2018-12-11 15:40:24 -05:00
Dan Gohman
5d7ece3d15 Fix clippy warning namespaces. 2018-12-06 20:50:38 -05:00
Dan Gohman
5adab629f2 Update to the rustfmt in rust 1.31, which is now stable. 2018-12-06 16:15:48 -05:00
Dan Gohman
367f3cd5d3 Implement reserve and reserve_exact for PrimaryMap. 2018-11-26 22:18:36 -08:00
Benjamin Bouvier
b7f2acf0ea [build] Implement registers code generation in the Rust meta crate; 2018-11-06 13:12:17 -08:00
Dan Gohman
9471c06da4 Update to use newer Rust features.
This re-introduces several cleanups that we previously deferred for not
supporting Rust 1.25.
2018-10-31 12:54:16 -07:00
Dan Gieschen Knutson
a19c6088f0 use iterative rather than recursive method for following aliases (#573)
* use iterative rather than recursive method for following aliases

* this avoids consuming stack via plain recursive calls
2018-10-28 20:26:44 -07:00
Muhammad Mominul Huque
d266b1a42d Rename EntityMap to SecondaryMap (#528)
* Rename `EntityMap` to `SecondaryMap`
2018-09-26 12:03:44 -07:00
Dan Gohman
53a0c6c67f Update to the rustfmt in rust 1.29, which is now stable. 2018-09-13 12:59:25 -07:00
Dan Gohman
67b7a8594a Implementing Deref in PrimaryMap turns out to be error-prone, so remove it.
One of the big advantages of PrimaryMap is that it protects against
using the wrong indices via a distinct index type. A Deref trait that
returns a plain slice would accept other indices. Add a comment
explaining this.
2018-08-28 20:55:06 -07:00
Dan Gohman
1affd5eae7 Add Deref and DerefMut implementations for PrimaryMap. 2018-08-28 20:19:01 -07:00
Dan Gohman
cc4bf1c7fb Deny unstable_features in "std" builds. 2018-08-13 12:51:49 -07:00
Dan Gohman
2db2d946b8 Support the rustc in the latest Ubuntu LTS.
At this time, this is Bionic, with Rust 1.25.0.
2018-07-13 16:26:21 -07:00
Dan Gohman
f4dbd38a4c Rename Cretonne to Cranelift! 2018-07-13 09:15:16 -07:00
Amanieu d'Antras
65ef4a7583 Add EntityList::from_slice to build a list from an existing slice 2018-07-12 09:05:46 -07:00
Amanieu d'Antras
5c7aeb46dd Make InstructionData comparable and hashable (#388)
* Don't implement Eq and Hash for EntityList

* Generate eq and hash methods for InstructionData

* Use the eq() and hash() methods of InstructionData in simple_gvn
2018-07-06 12:09:20 -07:00
Dan Gohman
2b04099604 Fix a typo in a comment. 2018-06-19 14:16:42 -07:00
Dan Gohman
00d7d3a774 Implement IntoIterator for PrimaryMap.
This makes iterating through a `PrimaryMap` more consistent with
iterating through a `Vec`.
2018-06-12 05:02:17 -07:00
Dan Gohman
a1fe0f82e1 Update to the latest stable rustfmt, 0.4.2-stable (febbb36 2018-04-12). 2018-05-29 10:37:38 -07:00
Dan Gohman
7045c41418 Add a comment about implementing Keys in terms of Range in the future. 2018-05-29 10:21:52 -07:00
Dan Gohman
7733ca1173 Implement entity's Iter in terms of std::iter::Enumerate.
Entity's `Iter` is essentially an `Enumerate`, so just use an
`Enumerate` under the covers. This makes the code simpler.
2018-05-29 10:21:52 -07:00
Dan Gohman
7720a571fc Fix reverse iteration in cretonne-entity's Iter.
A `DoubleEndedIterator` needs to track both a forward position and a
reverse position, so that `next_back()` can pop from the back of the
sequence.
2018-05-29 10:21:52 -07:00
Dan Gohman
6b88cd44a8 Update to rustfmt-preview (#348)
* Update to rustfmt-preview.

* Run "cargo fmt --all" with rustfmt 0.4.1.

rustfmt 0.4.1 is the latest release of rustfmt-preview available on the
stable channel.

* Fix a long line that rustfmt 0.4.1 can't handle.

* Remove unneeded commas left behind by rustfmt.
2018-05-25 11:38:38 -07:00
Dan Gohman
9c87f3ac87 Fix some warnings in no_std builds.
The dbg! macro expands to nothing in no_std mode, so variables that are
only used for debugging prompt unused variable warnings.

Also, allow unstable_features in no_std builds, since they use
feature(alloc), which is an unstable feature.
2018-04-30 14:04:14 -07:00
Dan Gohman
bf597b7abf Enable and fix several more clippy lints. 2018-04-17 17:05:03 -07:00
Amanieu d'Antras
9e17e62d68 Move entity into a separate crate (#297) 2018-04-10 11:06:49 -07:00