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
Katze
a6e077ebdf
documentation fix in RELEASES.md
...
f32 should probably be denoted as 0.0 as it might improve readability.
Signed-off-by: benaryorg <binary@benary.org>
2016-03-17 20:33:01 +01:00
bors
b12b4e4e32
Auto merge of #32294 - Manishearth:derive-fix, r=alexcrichton
...
Re-add double underscores in derive (fixes #32292 )
@durka, sanity-check, please?
<s>Don't merge this yet, I need to add a test and test it locally.</s>
ready for review
2016-03-17 11:08:44 -07:00
Tang Chenglong
79244c3a6b
let
introduces a statement
...
I changes *expression* to *statement* to make more accurate, because in Rust, `let` introduces a declaration statement.
2016-03-18 01:17:19 +08:00
Alex Crichton
af65d81490
std: Revert addition of into_ascii_*
methods
...
The addition of these methods in #31335 required adding impls of the trait for
the `String` and `Vec<T>` types. This unfortunately caused a regression (#32074 )
in type inference for using these methods which the libs team has decided to not
push forward with. These methods were stabilized in #32020 which was intended to
get backported to beta, but the backport hasn't happened just yet. This commit
reverts both the addition and stabilization of these methods.
One proposed method of handling this, in #32076 , was to move the methods to an
extra trait to avoid conflicts with type inference. After some discussion,
however, the libs team concluded that we probably want to reevaluate what we're
doing here, so discussion will continue on the tracking issue, #27809 .
2016-03-17 09:39:10 -07: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