1
Fork 0
Commit graph

56 commits

Author SHA1 Message Date
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