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
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
6c5b990c5f
All CommonMethods now real methods (not static)
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
d577ec7e5f
New files and folders for traits
...
Moved common enums to common
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
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
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
Irina Popa
5a9e6b8776
rustc_codegen_llvm: begin generalizing over backend values.
2018-11-16 14:10:53 +02:00
Jorge Aparicio
bd3c7812cb
use is_uninhabited in more places
2018-09-30 17:27:06 +02:00
Ralf Jung
e37d6d37e7
Revert "Auto merge of #53508 - japaric:maybe-uninit, r=RalfJung"
...
This reverts commit c6e3d7fa31
, reversing
changes made to 4591a245c7
.
2018-09-29 09:50:50 +02:00
Jorge Aparicio
ce6e6f9333
use is_uninhabited in more places
2018-09-22 21:01:21 +02:00
kenta7777
a0e7b6bf6b
renamed is_nil to is_unit
2018-09-11 23:17:35 +09:00
kenta7777
10b2083a6d
Revert "renamed is_nil to is_unit"
...
This reverts commit 6f685ffad4
.
2018-09-11 22:18:49 +09:00
kenta7777
6f685ffad4
renamed is_nil to is_unit
2018-09-10 10:45:16 +09:00
Niko Matsakis
56506cfa25
support user-given types in adts
2018-08-24 13:27:38 -04:00
varkor
8a5dccde2a
Remove Ty prefix from Ty{Bool|Char|Int|Uint|Float|Str}
2018-08-22 16:08:49 +01:00
varkor
6f637da50c
Remove Ty prefix from Ty{Adt|Array|Slice|RawPtr|Ref|FnDef|FnPtr|Dynamic|Closure|Generator|GeneratorWitness|Never|Tuple|Projection|Anon|Infer|Error}
2018-08-22 16:07:44 +01:00
Masaki Hara
c488d59add
Integrate OperandValue::UnsizedRef into OperandValue::Ref.
2018-08-19 08:07:33 +09:00
Masaki Hara
800f2c13a3
Implement simple codegen for unsized rvalues.
2018-08-19 08:07:33 +09:00
Simonas Kazlauskas
dc02a6070f
Do not generate assumes for plain integer casts
2018-08-12 18:38:46 +03:00
Mark Rousskov
3cc4450a8a
Simplify some handling of target_pointer_width
2018-08-04 06:54:36 -06:00
Irina Popa
f375185314
rustc_codegen_llvm: use safe references for Value.
2018-07-30 19:49:18 +03:00
Irina Popa
d04e66d114
rustc_codegen_llvm: use safe references for Type.
2018-07-30 18:36:29 +03:00
Josh Stone
e578976560
Store scalar pair bools as i8 in memory
...
We represent `bool` as `i1` in a `ScalarPair`, unlike other aggregates,
to optimize IR for checked operators and the like. With this patch, we
still do so when the pair is an immediate value, but we use the `i8`
memory type when the value is loaded or stored as an LLVM aggregate.
So `(bool, bool)` looks like an `{ i1, i1 }` immediate, but `{ i8, i8 }`
in memory. When a pair is a direct function argument, `PassMode::Pair`,
it is still passed using the immediate `i1` type, but as a return value
it will use the `i8` memory type. Also, `bool`-like` enum tags will now
use scalar pairs when possible, where they were previously excluded due
to optimization issues.
2018-07-05 09:59:52 -07:00
Eduard-Mihai Burtescu
25c47a4885
rustc_codegen_llvm: don't treat i1 as signed, even for #[repr(i8)] enums.
2018-06-16 16:00:53 +03:00
Irina Popa
b63d7e2b1c
Rename trans to codegen everywhere.
2018-05-17 15:08:30 +03:00