about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/mir/constant.rs
AgeCommit message (Collapse)AuthorLines
2018-11-16Great separation of librustc_codegen_llvm: librustc_codegen_ssa compilesDenis Merigoux-161/+0
2018-11-16Generalized mir::codegen_mir (and all subsequent functions)Denis Merigoux-76/+14
2018-11-16Generalized base::unsized_infoDenis Merigoux-1/+1
2018-11-16Added StaticMethods traitDenis Merigoux-8/+7
2018-11-16Generalized memset and memcpyDenis Merigoux-1/+1
2018-11-16Removing LLVM content from CommonMethods -> ConstMethodsDenis Merigoux-1/+1
2018-11-16Prefixed type methods & removed trait impl for write::CodegenContextDenis Merigoux-4/+4
2018-11-16Prefixed const methods with "const" instead of "c"Denis Merigoux-8/+8
2018-11-16Traitification of type_ methodsDenis Merigoux-5/+5
The methods are now attached to CodegenCx instead of Type
2018-11-16Use the method form for CodegenCx everywhereDenis Merigoux-4/+4
2018-11-16Added self argument for Codegen CommonMethod trait methodsDenis Merigoux-4/+4
2018-11-16Replaced Codegen field access by trait methodDenis Merigoux-5/+5
2018-11-16Traitification of common.rs methodsDenis Merigoux-10/+9
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/+1
Generalized FunctionCx Added ValueTrait and first change Generalize CondegenCx Generalized the Builder struct defined in librustc_codegen_llvm/builder.rs
2018-11-04rustc_target: pass contexts by reference, not value.Eduard-Mihai Burtescu-3/+3
2018-10-25Report const eval error inside the queryOliver Schneider-10/+9
2018-10-10miri engine: basic support for pointer provenance trackingRalf Jung-2/+2
2018-09-20rename evaluator -> interpreter to make eddyb happyRalf Jung-1/+1
2018-08-27Miri Memory WorkRalf Jung-2/+2
* Unify the two maps in memory to store the allocation and its kind together. * Share the handling of statics between CTFE and miri: The miri engine always uses "lazy" `AllocType::Static` when encountering a static. Acessing that static invokes CTFE (no matter the machine). The machine only has any influence when writing to a static, which CTFE outright rejects (but miri makes a copy-on-write). * Add an `AllocId` to by-ref consts so miri can use them as operands without making copies. * Move responsibilities around for the `eval_fn_call` machine hook: The hook just has to find the MIR (or entirely take care of everything); pushing the new stack frame is taken care of by the miri engine. * Expose the intrinsics and lang items implemented by CTFE so miri does not have to reimplement them.
2018-08-22Remove Ty prefix from ↵varkor-1/+1
Ty{Adt|Array|Slice|RawPtr|Ref|FnDef|FnPtr|Dynamic|Closure|Generator|GeneratorWitness|Never|Tuple|Projection|Anon|Infer|Error}
2018-08-22miri/CTFE refactorRalf Jung-3/+3
* Value gets renamed to Operand, so that now interpret::{Place, Operand} are the "dynamic" versions of mir::{Place, Operand}. * Operand and Place share the data for their "stuff is in memory"-base in a new type, MemPlace. This also makes it possible to give some more precise types in other areas. Both Operand and MemPlace have methods available to project into fields (and other kinds of projections) without causing further allocations. * The type for "a Scalar or a ScalarPair" is called Value, and again used to give some more precise types. * All of these have versions with an attached layout, so that we can more often drag the layout along instead of recomputing it. This lets us get rid of `PlaceExtra::Downcast`. MPlaceTy and PlaceTy can only be constructed in place.rs, making sure the layout is handled properly. (The same should eventually be done for ValTy and OpTy.) * All the high-level functions to write typed memory take a Place, and live in place.rs. All the high-level typed functions to read typed memory take an Operand, and live in operands.rs.
2018-08-19mv (mod) codemap source_mapDonato Sciarra-1/+1
2018-08-07Auto merge of #51007 - AstralSorcerer:master, r=nagisabors-2/+2
Make globals with private linkage unnamed. Fixes #50862. cc @oli-obk @nagisa
2018-08-01Reintroduce `Undef` and properly check constant value sizesOliver Schneider-4/+6
2018-07-31Make globals with private linkage unnamed. Fixes #50862.Colin Pronovost-2/+2
2018-07-30rustc_codegen_llvm: use safe references for Value.Irina Popa-11/+14
2018-07-30rustc_codegen_llvm: use safe references for Type.Irina Popa-7/+7
2018-07-23Promoteds are statics and statics have a place, not just a valueOliver Schneider-21/+12
2018-06-30Do not allow LLVM to increase a TLS's alignment on macOS.kennytm-2/+2
2018-06-28Merge `ConstVal` and `ConstValue`Oliver Schneider-16/+14
2018-06-28Move everything over from `middle::const_val` to `mir::interpret`Oliver Schneider-1/+1
2018-06-28Move the Lrc outside the error type and name the fieldsOliver Schneider-4/+5
2018-06-05Refactor the const eval diagnostic APIOliver Schneider-1/+4
2018-05-24Revert "Ensure llvm doesn't trigger an assert for crazy transmutes"Oliver Schneider-2/+5
This reverts commit 776c632e2a9a044fd134321a9d561e28994ff3ff.
2018-05-24Ensure llvm doesn't trigger an assert for crazy transmutesOliver Schneider-5/+2
2018-05-24primval -> scalar renameOliver Schneider-4/+4
2018-05-24change `Value::Bytes` to `Value::Bits`Oliver Schneider-4/+6
2018-05-24Rename MemoryPointer to PointerOliver Schneider-2/+2
2018-05-24Eliminate the `Pointer` wrapper typeOliver Schneider-1/+1
2018-05-24Differentiate between interpret::Scalar and layout::ScalarOliver Schneider-6/+6
2018-05-24Rename PrimVal to ScalarOliver Schneider-6/+6
2018-05-22Use SortedMap instead of BTreeMap for relocations in MIRI.Michael Woerister-1/+1
2018-05-22Introduce AllocType which indicates what AllocIds point toJohn Kåre Alsaker-26/+22
2018-05-19Use `Size` instead of `u64` in mir interpretationOliver Schneider-4/+5
2018-05-19Go through an allocation when accessing fields of constantsOliver Schneider-1/+1
2018-05-19Ensure that statics are always ByRefOliver Schneider-46/+3
2018-05-17Rename trans to codegen everywhere.Irina Popa-0/+271