Commit Graph

86089 Commits

Author SHA1 Message Date
Denis Merigoux
78dd95f4c7 Generalized base::unsize_thin_ptr 2018-11-16 14:15:13 +02:00
Denis Merigoux
034f69753b Generalized base::unsized_info 2018-11-16 14:15:13 +02:00
Eduard-Mihai Burtescu
484e07c231 [eddyb/rebase cleanup] s/&self./self. 2018-11-16 14:15:13 +02:00
Denis Merigoux
0a1c50955b Traitified IntrinsicCallMethods 2018-11-16 14:12:49 +02:00
Denis Merigoux
a5aeb8edd6 Transfered memcpy and memset to BuilderMethods 2018-11-16 14:11:59 +02:00
Denis Merigoux
3c082a23e8 Added StaticMethods trait 2018-11-16 14:11:59 +02:00
Denis Merigoux
d77e34f35b Generalized memset and memcpy 2018-11-16 14:11:59 +02:00
Denis Merigoux
0514c7b1b2 Generalized some base.rs methods 2018-11-16 14:11:59 +02:00
Denis Merigoux
c487b825b0 Attempt at including CodegenCx within Builder with Associated types 2018-11-16 14:11:59 +02:00
Denis Merigoux
1929ac2007 Fixed typos 2018-11-16 14:11:59 +02:00
Denis Merigoux
4787b7cac9 Removed phantomdata no longer necessary
Because CodegenContext doesn't implement Backend anymore
2018-11-16 14:11:59 +02:00
Denis Merigoux
a1d0d4f943 Removing LLVM content from CommonMethods -> ConstMethods 2018-11-16 14:11:59 +02:00
Denis Merigoux
e224f063e8 Prefixed type methods & removed trait impl for write::CodegenContext 2018-11-16 14:11:59 +02:00
Denis Merigoux
6d42574b7a Prefixed const methods with "const" instead of "c" 2018-11-16 14:11:59 +02:00
Denis Merigoux
730b13ab51 Traitification of type_ methods
The methods are now attached to CodegenCx instead of Type
2018-11-16 14:11:59 +02:00
Denis Merigoux
5f28e0a0b6 Added definition of type trait 2018-11-16 14:11:59 +02:00
Denis Merigoux
3e77f2fc4f Use the method form for CodegenCx everywhere 2018-11-16 14:11:59 +02:00
Denis Merigoux
6c5b990c5f All CommonMethods now real methods (not static) 2018-11-16 14:11:59 +02:00
Denis Merigoux
33eee83737 Removed code duplication for CommonWriteMethods 2018-11-16 14:11:59 +02:00
Denis Merigoux
4cc18d3de5 CommonWriteMethods are not static any more 2018-11-16 14:11:59 +02:00
Denis Merigoux
3aee77277e Split CommonMethods to accomodate for use in back/write.rs 2018-11-16 14:11:59 +02:00
Denis Merigoux
83e07f9fe9 Added self argument for Codegen CommonMethod trait methods 2018-11-16 14:11:59 +02:00
Denis Merigoux
d325844804 Replaced Codegen field access by trait method 2018-11-16 14:11:59 +02:00
Denis Merigoux
8714e6bce6 Traitification of common.rs methods 2018-11-16 14:11:59 +02:00
Denis Merigoux
3889c2dcfb New Backend trait containing associated types 2018-11-16 14:11:59 +02:00
Denis Merigoux
d577ec7e5f New files and folders for traits
Moved common enums to common
2018-11-16 14:11:59 +02:00
Denis Merigoux
7a2670e307 Use real type names rather than Self:: 2018-11-16 14:11:59 +02:00
Denis Merigoux
a16d85bbae Removed parasite yaml file and put explicit lifetimes 2018-11-16 14:11:59 +02:00
Denis Merigoux
89825f2ef5 Use associated types instead of type parameters inside the BuilderMethods trait 2018-11-16 14:11:59 +02:00
Denis Merigoux
9c41e1aa10 Removed genericity over Value in various functions
Prelude to using associated types in traits rather than type parameters
2018-11-16 14:11:34 +02:00
Denis Merigoux
1ca750683e Generalized AsmDialect for BuilderMethods 2018-11-16 14:11:09 +02:00
Denis Merigoux
b761538997 Generalized SynchronisationScope for BuilderMethods 2018-11-16 14:11:09 +02:00
Denis Merigoux
b699866290 Generalized AtomicOrdering for BuilderMethods 2018-11-16 14:11:09 +02:00
Denis Merigoux
275589150b Generalized AtomicRmwBinOp for BuilderMethods 2018-11-16 14:11:09 +02:00
Denis Merigoux
1bcb4df166 Generalized OperandBundleDef in BuilderMethods 2018-11-16 14:11:09 +02:00
Denis Merigoux
bc86624c43 Removed useless traits for IntPredicate and RealPredicate 2018-11-16 14:11:09 +02:00
Denis Merigoux
8590336d49 Generalized RealPredicate 2018-11-16 14:11:09 +02:00
Denis Merigoux
51b7f2739b Generalized IntPredicate in the BuilderMethods trait 2018-11-16 14:11:09 +02:00
Denis Merigoux
14798d6937 Generalized BasicBlocks in BuilderMethods trait 2018-11-16 14:11:09 +02:00
Denis Merigoux
34c5dc045f Generalized base.rs#call_memcpy and everything that it uses
Generalized operand.rs#nontemporal_store and fixed tidy issues

Generalized operand.rs#nontemporal_store's implem even more
With a BuilderMethod trait implemented by Builder for LLVM

Cleaned builder.rs : no more code duplication, no more ValueTrait

Full traitification of builder.rs
2018-11-16 14:11:09 +02:00
Denis Merigoux
83b2152ce4 Reduced line length to pass tidy
Generalized FunctionCx

Added ValueTrait and first change

Generalize CondegenCx

Generalized the Builder struct defined in librustc_codegen_llvm/builder.rs
2018-11-16 14:11:09 +02:00
Denis Merigoux
c76fc3d804 Work around to fix issue https://github.com/rust-lang/rust/issues/53912 2018-11-16 14:11:09 +02:00
Irina Popa
5a9e6b8776 rustc_codegen_llvm: begin generalizing over backend values. 2018-11-16 14:10:53 +02:00
bors
6b9b97bd9b Auto merge of #55948 - matthiaskrgr:clippy, r=oli-obk
submodules: update clippy from d8b42690 to 7e0ddef4

Fixes clippy toolstate.

Changes:
````
rustup https://github.com/rust-lang/rust/pull/55852/
Fix "too" -> "foo" typo in format.rs
Fix `use_self` violation
Fix wrong suggestion for `redundant_closure_call`
Check for common metadata
Fix `use_self` false positive on `use` statements
Fix `use_self` false positive
Remove `+` from `has_unary_equivalent`
Fix dogfood
Update println! formatting
Fix false positive in check mode caused by `gen_deprecated`
RIIR update lints: Add check mode (update_lints.py rewrite complete)
changed into_iter to iter and fixed a lint check
Fix `collapsible_if` error
Fix `possible_missing_comma` false positives
format code
fix comment spacing
change single char str to char
add lint to lintarray macro
Revert "small fix"
small fix
added float support for mistyped literal lints
tmp progress
````
2018-11-15 18:35:38 +00:00
Matthias Krüger
f354c85102 submodules: update clippy from d8b42690 to f5d868c9
Fixes clippy toolstate.

Changes:
````
rustup https://github.com/rust-lang/rust/pull/55852/
Fix "too" -> "foo" typo in format.rs
Fix `use_self` violation
Fix wrong suggestion for `redundant_closure_call`
Check for common metadata
Fix `use_self` false positive on `use` statements
Fix `use_self` false positive
Remove `+` from `has_unary_equivalent`
Fix dogfood
Update println! formatting
Fix false positive in check mode caused by `gen_deprecated`
RIIR update lints: Add check mode (update_lints.py rewrite complete)
changed into_iter to iter and fixed a lint check
Fix `collapsible_if` error
Fix `possible_missing_comma` false positives
format code
fix comment spacing
change single char str to char
add lint to lintarray macro
Revert "small fix"
small fix
added float support for mistyped literal lints
tmp progress
````
2018-11-15 17:49:24 +01:00
bors
9649c1f70f Auto merge of #55974 - pietroalbini:rollup, r=pietroalbini
Rollup of 17 pull requests

Successful merges:

 - #55182 (Redox: Update to new changes)
 - #55211 (Add BufWriter::buffer method)
 - #55507 (Add link to std::mem::size_of to size_of intrinsic documentation)
 - #55530 (Speed up String::from_utf16)
 - #55556 (Use `Mmap` to open the rmeta file.)
 - #55622 (NetBSD: link libstd with librt in addition to libpthread)
 - #55750 (Make `NodeId` and `HirLocalId` `newtype_index`)
 - #55778 (Wrap some query results in `Lrc`.)
 - #55781 (More precise spans for temps and their drops)
 - #55785 (Add mem::forget_unsized() for forgetting unsized values)
 - #55852 (Rewrite `...` as `..=` as a `MachineApplicable` 2018 idiom lint)
 - #55865 (Unix RwLock: avoid racy access to write_locked)
 - #55901 (fix various typos in doc comments)
 - #55926 (Change sidebar selector to fix compatibility with docs.rs)
 - #55930 (A handful of hir tweaks)
 - #55932 (core/char: Speed up `to_digit()` for `radix <= 10`)
 - #55956 (add tests for some fixed ICEs)

Failed merges:

r? @ghost
2018-11-15 12:43:01 +00:00
Pietro Albini
d0e08ce88e
Rollup merge of #55956 - euclio:issue-55587, r=estebank
add tests for some fixed ICEs

Fixes #55587.
Fixes #54348.

Looks like these ICEs are already fixed in nightly, so this PR just adds tests.

r? @estebank
2018-11-15 11:04:47 +01:00
Pietro Albini
f40f04bcc1
Rollup merge of #55932 - Turbo87:to_digit, r=alexcrichton
core/char: Speed up `to_digit()` for `radix <= 10`

I noticed that `char::to_digit()` seemed to do a bit of extra work for handling `[a-zA-Z]` characters. Since `to_digit(10)` seems to be the most common case (at least in the `rust` codebase) I thought it might be valuable to create a fast path for that case, and according to the benchmarks that I added in one of the commits it seems to pay off. I also created another fast path for the `radix < 10` case, which also seems to have a positive effect.

It is very well possible that I'm measuring something entirely unrelated though, so please verify these numbers and let me know if I missed something!

### Before

```
# Run 1
test char::methods::bench_to_digit_radix_10      ... bench:      16,265 ns/iter (+/- 1,774)
test char::methods::bench_to_digit_radix_16      ... bench:      13,938 ns/iter (+/- 2,479)
test char::methods::bench_to_digit_radix_2       ... bench:      13,090 ns/iter (+/- 524)
test char::methods::bench_to_digit_radix_36      ... bench:      14,236 ns/iter (+/- 1,949)

# Run 2
test char::methods::bench_to_digit_radix_10      ... bench:      16,176 ns/iter (+/- 1,589)
test char::methods::bench_to_digit_radix_16      ... bench:      13,896 ns/iter (+/- 3,140)
test char::methods::bench_to_digit_radix_2       ... bench:      13,158 ns/iter (+/- 1,112)
test char::methods::bench_to_digit_radix_36      ... bench:      14,206 ns/iter (+/- 1,312)

# Run 3
test char::methods::bench_to_digit_radix_10      ... bench:      16,221 ns/iter (+/- 2,423)
test char::methods::bench_to_digit_radix_16      ... bench:      14,361 ns/iter (+/- 3,926)
test char::methods::bench_to_digit_radix_2       ... bench:      13,097 ns/iter (+/- 671)
test char::methods::bench_to_digit_radix_36      ... bench:      14,388 ns/iter (+/- 1,068)
```

### After

```
# Run 1
test char::methods::bench_to_digit_radix_10      ... bench:      11,521 ns/iter (+/- 552)
test char::methods::bench_to_digit_radix_16      ... bench:      12,926 ns/iter (+/- 684)
test char::methods::bench_to_digit_radix_2       ... bench:      11,266 ns/iter (+/- 1,085)
test char::methods::bench_to_digit_radix_36      ... bench:      14,213 ns/iter (+/- 614)

# Run 2
test char::methods::bench_to_digit_radix_10      ... bench:      11,424 ns/iter (+/- 1,042)
test char::methods::bench_to_digit_radix_16      ... bench:      12,854 ns/iter (+/- 1,193)
test char::methods::bench_to_digit_radix_2       ... bench:      11,193 ns/iter (+/- 716)
test char::methods::bench_to_digit_radix_36      ... bench:      14,249 ns/iter (+/- 3,514)

# Run 3
test char::methods::bench_to_digit_radix_10      ... bench:      11,469 ns/iter (+/- 685)
test char::methods::bench_to_digit_radix_16      ... bench:      12,852 ns/iter (+/- 568)
test char::methods::bench_to_digit_radix_2       ... bench:      11,275 ns/iter (+/- 1,356)
test char::methods::bench_to_digit_radix_36      ... bench:      14,188 ns/iter (+/- 1,501)
```

I ran the benchmark using:

```sh
python x.py bench src/libcore --stage 1 --keep-stage 0 --test-args "bench_to_digit"
```
2018-11-15 11:04:46 +01:00
Pietro Albini
c915f921d7
Rollup merge of #55930 - ljedrz:hir_bonuses, r=cramertj
A handful of hir tweaks

- remove an unused `hir_vec` macro pattern
- simplify `fmt::Debug` for `hir::Path` (take advantage of the `Display` implementation)
- remove an unused type alias (`CrateConfig`)
- simplify a `match` expression (join common patterns)
2018-11-15 11:04:45 +01:00
Pietro Albini
12556a4b8f
Rollup merge of #55926 - cynecx:fix-rustdoc-mobile-css, r=GuillaumeGomez
Change sidebar selector to fix compatibility with docs.rs

Fix for #55883.
2018-11-15 11:04:43 +01:00