Eduard Burtescu
|
3e98220a1c
|
mir: Translate intrinsics, via old trans where possible.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
ee7687a5e5
|
mir: Reintroduce the temporary block after invokes, to handle critical edges.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
41fc5f7c2a
|
mir: Trigger closure instantiations when the closure value is created.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
6c551b3766
|
trans: Load and cache cross-crate Mir instances in the shared context.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
47cd05c8c1
|
mir: Don't shadow the "args" variable in Call translation.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
9c6bfe4499
|
mir: Truncate bool to i1 for SwitchInt.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
38638d37f7
|
trans: Take a &Builder in call_memcpy, like call_memset.
|
2016-03-17 21:51:54 +02:00 |
|
Eduard Burtescu
|
b63a5eed6e
|
mir: Support RustCall ABI functions.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
92e485874e
|
mir: Load FatPtr constants instead of keeping them indirect.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
eb43d95211
|
mir: Don't load the discriminant, it's already in immediate form.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
d3a6d67fb8
|
mir: Don't use ConstVal when adjustments are involved, as they would be lost.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
9cc5ee359a
|
mir: Unsize ConstVal::ByteStr before comparing &[u8] against it.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
ccc5e0732a
|
mir: Ignore noop casts (e.g. when as used for coercion).
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
1de6a9682f
|
mir: Don't use ConstVal kinds that contain local NodeId's.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
b38627dafb
|
mir: Use the right form of GEPi for indexing slices vs arrays.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
56417b3732
|
mir: Monomorphize LvalueTy's of projections.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
f9c06abc21
|
trans: Simplify "try" intrinsic.
|
2016-03-17 21:51:53 +02:00 |
|
Eduard Burtescu
|
bffb0decc8
|
tests: Use arguments in codegen/stores.rs to turn aggregates into immediates.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
6c0674e613
|
trans: Remove the foreign module.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
aec63821d0
|
trans: Handle all function setup for all ABIs via FnType.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
bd0a849f3b
|
trans: datum::lvalue_scratch_datum doesn't need a move-into-closure trick.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
03993882d6
|
trans: Handle calls for all ABIs through FnType.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
9e036c0ff0
|
trans: Provide the FnType for a direct call via Callee::direct_fn_type.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
80d939fd22
|
trans: Handle ignored arguments/returns uniformly.
|
2016-03-17 21:51:52 +02:00 |
|
Eduard Burtescu
|
7454b5c61d
|
trans: Set the calling convention in apply_attrs_callsite.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
77f3484148
|
trans: Apply all attributes through FnType.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
de5f8244f2
|
trans: Use llvm::Attributes directly in ArgTy.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
c7172a9935
|
rustc_llvm: An AttrBuilder that's not completely wasteful.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
763b6cba37
|
rustc_llvm: Update the Attribute bitflags and remove OtherAttribute.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
1d7c9bd137
|
trans: use sizing_type_of for interacting with potentially incomplete types.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
d492d09f31
|
trans: Apply ZExt and StructRet attributes uniformly.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
ac60318cf5
|
trans: Only mutate ArgTy's in C ABI handling, don't create them.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
03942056aa
|
trans: Handle type_of for Rust fn's via abi::FnType.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
f6bbbe1070
|
trans: Remove dropflag-unaware type_is_newtype_immediate shortcut.
|
2016-03-17 21:51:51 +02:00 |
|
Eduard Burtescu
|
cf0ea786ff
|
tests: Force instantiation of extern fns.
|
2016-03-17 21:51:50 +02:00 |
|
Eduard Burtescu
|
200d001784
|
trans: Pass fat pointers as two arguments even for FFI.
|
2016-03-17 21:51:50 +02:00 |
|
Eduard Burtescu
|
3342da4113
|
trans: Don't treat closure types like function types in declare.
|
2016-03-17 21:51:50 +02:00 |
|
Eduard Burtescu
|
da66431d06
|
trans: Combine cabi and back::abi into abi.
|
2016-03-17 21:51:50 +02:00 |
|
Eduard Burtescu
|
cdfad40735
|
trans: Condense the fn instantiation logic into callee.
|
2016-03-17 21:51:47 +02:00 |
|
Eduard Burtescu
|
b05556e06d
|
trans: Rename MonoId to Instance and start using it in more places.
|
2016-03-17 21:51:32 +02:00 |
|
Eduard Burtescu
|
d6e72c48dd
|
trans: Don't store extra copies of intrinsics ID/substs.
|
2016-03-17 18:19:50 +02:00 |
|
Eduard Burtescu
|
89766a81ef
|
trans: use Cell instead of RefCell where it suffices.
|
2016-03-17 18:19:50 +02:00 |
|
Eduard Burtescu
|
b122d1636a
|
trans: simplify the declare interface.
|
2016-03-17 18:19:50 +02:00 |
|
Eduard Burtescu
|
c6d214bdeb
|
trans: Revamp and empower cabi::FnType.
|
2016-03-17 18:19:50 +02:00 |
|
Eduard Burtescu
|
9221b9118b
|
trans: Pass the Rust type for the closure env in type_of_rust_fn.
|
2016-03-17 18:19:29 +02:00 |
|
Eduard Burtescu
|
7011e30352
|
trans: Remove the old ExprOrMethodCall.
|
2016-03-17 18:19:29 +02:00 |
|
Eduard Burtescu
|
55b5a365ef
|
trans: Remove unused return type argument from declare_cfn.
|
2016-03-17 18:19:29 +02:00 |
|
Eduard Burtescu
|
5af3c12cfc
|
trans: Move static item handling to consts.
|
2016-03-17 18:19:29 +02:00 |
|
Eduard Burtescu
|
c3f856e7e2
|
trans: Remove dead code for variants and structs from get_item_val.
|
2016-03-17 18:19:29 +02:00 |
|
Eduard Burtescu
|
e0970498c7
|
trans: Move trans_foreign_mod and trans_impl to trans_item.
|
2016-03-17 18:19:29 +02:00 |
|