about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/mir/statement.rs
AgeCommit message (Collapse)AuthorLines
2018-11-16Great separation of librustc_codegen_llvm: librustc_codegen_ssa compilesDenis Merigoux-115/+0
2018-11-16Generalized mir::codegen_mir (and all subsequent functions)Denis Merigoux-12/+10
2018-11-16New files and folders for traitsDenis Merigoux-1/+1
Moved common enums to common
2018-11-16Generalized base.rs#call_memcpy and everything that it usesDenis Merigoux-0/+1
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-16Reduced line length to pass tidyDenis Merigoux-1/+2
Generalized FunctionCx Added ValueTrait and first change Generalize CondegenCx Generalized the Builder struct defined in librustc_codegen_llvm/builder.rs
2018-11-07no more action on ref or cast, but add new MIR statement for escaping a ptr ↵Ralf Jung-1/+2
to raw
2018-11-02Auto merge of #55087 - levex:e0669-improve-span, r=nagisabors-8/+5
rustc: improve E0669 span E0669 refers to an operand that cannot be coerced into a single LLVM value, unfortunately right now this uses the Span for the entire inline assembly statement, which is less than ideal. This commit preserves the Span from HIR, which lets us emit the error using the Span for the operand itself in MIR. r? @nagisa cc/ @parched
2018-10-29Emit Retag statements, kill Validate statementsRalf Jung-1/+1
Also "rename" -Zmir-emit-validate to -Zmir-emit-retag, which is just a boolean (yes or no).
2018-10-28inline-asm: emit as many E0669 errors as we canLevente Kurusa-8/+5
Signed-off-by: Levente Kurusa <lkurusa@acm.org>
2018-10-17rustc: improve E0669 spanLevente Kurusa-4/+4
E0669 refers to a constraint that cannot be coerced into a single LLVM value, unfortunately right now this uses the Span for the entire inline assembly statement, which is less than ideal. This commit preserves the Span from HIR, which lets us emit the error using the Span for the operand itself in MIR. Signed-off-by: Levente Kurusa <lkurusa@acm.org>
2018-10-06codegen_llvm: verify that inline assembly operands are scalarsLevente Kurusa-7/+21
Otherwise, LLVM translation will fail with a panic. Signed-off-by: Levente Kurusa <lkurusa@acm.org>
2018-09-26fixup! codegen_llvm: check inline assembly constraints with LLVMLevente Kurusa-1/+2
2018-09-25codegen_llvm: check inline assembly constraints with LLVMLevente Kurusa-1/+4
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-18Refactor 'ReadForMatch' into 'FakeRead' and add the cause of the fake readRemy Rakic-1/+1
2018-09-10add the `AscribeUserType` statement kindNiko Matsakis-1/+1
Make it have the semantics of subtype.
2018-08-19Implement simple codegen for unsized rvalues.Masaki Hara-0/+7
2018-07-30rustc_codegen_llvm: use safe references for Type.Irina Popa-3/+3
2018-05-29rust-lang/rust#27282: Add `StatementKind::ReadForMatch` to MIR.Felix S. Klock II-0/+1
(This is just the data structure changes and some boilerplate match code that followed from it; the actual emission of these statements comes in a follow-up commit.)
2018-05-17Rename trans to codegen everywhere.Irina Popa-0/+91