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
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
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
bors
775eab5883
Auto merge of #55698 - nikic:remove-llvm-4-support, r=alexcrichton
...
Remove support for building against LLVM 4
With emscripten removed in #55626 , we no longer need to support building against LLVM 4.
2018-11-11 22:38:54 +00:00
Mark Rousskov
78cab36139
Rollup merge of #55633 - nikic:memcpy-align, r=nagisa
...
Support memcpy/memmove with differing src/dst alignment
If LLVM 7 is used, generate memcpy/memmove with differing src/dst alignment. I've added new FFI functions to construct these through the builder API, which is more convenient than dealing with differing intrinsic signatures depending on the LLVM version.
Fixes #49740 .
2018-11-08 18:14:49 -07:00
Nikita Popov
3cc8b17451
Remove support for building against LLVM 4
...
With emscripten removed in #55626 , we no longer need to support
building against LLVM 4.
2018-11-05 15:04:26 +01:00
Nikita Popov
463ad9098e
Support memcpy/memmove with differing src/dst alignment
...
If LLVM 7 is used, generate memcpy/memmove with differing
src/dst alignment. I've added new FFI functions to construct
these through the builder API, which is more convenient than
dealing with differing intrinsic signatures depending on the
LLVM version.
2018-11-04 18:54:37 +01:00
Oliver Middleton
01674fbe06
Correct alignment of atomic types and (re)add Atomic{I,U}128
...
LLVM requires that atomic loads and stores be aligned to at least the size of the type.
2018-10-27 13:47:11 +03:00
Matthias Krüger
4972beaf65
fix typos in various places
2018-10-23 15:56:25 +02:00
varkor
f40932f106
Fix LLVMRustInlineAsmVerify return type mismatch
2018-10-16 18:22:25 +01:00
ljedrz
a0fc2e6ddc
codegen_llvm: remove explicit returns
2018-10-08 19:17:25 +02:00
ljedrz
61f47737b5
codegen_llvm: whitespace & formatting improvements
2018-10-08 16:52:34 +02:00
Levente Kurusa
70bf90384c
fixup! codegen_llvm: check inline assembly constraints with LLVM
2018-09-26 06:43:19 +02:00
Levente Kurusa
fec86c8352
codegen_llvm: check inline assembly constraints with LLVM
...
LLVM provides a way of checking whether the constraints and the actual
inline assembly make sense. This commit introduces a check before
emitting code for the inline assembly. If LLVM rejects the inline
assembly (or its constraints), then the compiler emits an error E0668
("malformed inline assembly").
Signed-off-by: Levente Kurusa <lkurusa@acm.org>
2018-09-25 20:38:35 +02:00
Richard Diamond
66e8e1953e
Fix an AMDGPU related load bit range metadata assertion.
2018-08-23 14:31:10 -05:00
Masaki Hara
cd0476a390
Add Builder::array_alloca.
2018-08-19 08:06:42 +09:00
Michael Woerister
88d84b38f1
Introduce SmallCStr and use it where applicable.
2018-08-10 11:13:00 +02:00
Michael Woerister
9585c5dc1f
Introduce const_cstr!() macro and use it where applicable.
2018-08-10 10:22:44 +02:00
Irina Popa
54c98ab0dd
rustc_codegen_llvm: fix ownership of Builder.
2018-07-30 20:35:11 +03:00
Irina Popa
265f2fa4de
rustc_codegen_llvm: fix tidy errors.
2018-07-30 20:35:08 +03:00
Irina Popa
0ab3444540
rustc_codegen_llvm: use safe references for OperandBundleDef.
2018-07-30 20:10:37 +03:00
Irina Popa
ebec156abf
rustc_codegen_llvm: remove more unused functions.
2018-07-30 20:10:25 +03:00
Irina Popa
3eb50358e4
rustc_codegen_llvm: use safe references for BasicBlock.
2018-07-30 19:49:20 +03:00
Irina Popa
f375185314
rustc_codegen_llvm: use safe references for Value.
2018-07-30 19:49:18 +03:00
Irina Popa
2dbde55395
rustc_codegen_llvm: use safe references for Builder.
2018-07-30 18:36:30 +03:00
Irina Popa
d04e66d114
rustc_codegen_llvm: use safe references for Type.
2018-07-30 18:36:29 +03:00