Mark Simulacrum
1be170b01a
Replace BlockAndBuilder with Builder.
2017-01-04 11:33:31 -07:00
bors
d40d01bd0e
Auto merge of #38670 - dotdash:transmute_align, r=eddyb
...
Fix transmute::<T, U> where T requires a bigger alignment than U
For transmute::<T, U> we simply pointercast the destination from a U
pointer to a T pointer, without providing any alignment information,
thus LLVM assumes that the destination is aligned to hold a value of
type T, which is not necessarily true. This can lead to LLVM emitting
machine instructions that assume said alignment, and thus cause aborts.
To fix this, we need to provide the actual alignment to store_operand()
and in turn to store() so they can set the proper alignment information
on the stores and LLVM can emit the proper machine instructions.
Fixes #32947
2017-01-04 14:26:17 +00:00
Björn Steinbrink
71a11a0b10
Fix transmute::<T, U> where T requires a bigger alignment than U
...
For transmute::<T, U> we simply pointercast the destination from a U
pointer to a T pointer, without providing any alignment information,
thus LLVM assumes that the destination is aligned to hold a value of
type T, which is not necessarily true. This can lead to LLVM emitting
machine instructions that assume said alignment, and thus cause aborts.
To fix this, we need to provide the actual alignment to store_operand()
and in turn to store() so they can set the proper alignment information
on the stores and LLVM can emit the proper machine instructions.
Fixes #32947
2016-12-31 13:13:30 +01:00
Nick Cameron
7720cf02e3
Change --crate-type metadata to --emit=metadata
2016-12-29 13:24:45 +13:00
Mark Simulacrum
bd009dc444
Remove fn_ty from FunctionContext
2016-12-20 20:04:44 -07:00
Mark Simulacrum
6fac0a1a84
Change *.fcx.ccx to *.ccx
2016-12-20 20:04:43 -07:00
Mark Simulacrum
88202c5b83
Replace bcx.ccx() with bcx.ccx
2016-12-20 20:04:41 -07:00
Mark Simulacrum
f103ea4f89
Remove unecessary logic.
2016-12-20 20:03:36 -07:00
Mark Simulacrum
0a71b38803
Remove llretslotptr from FunctionContext
2016-12-20 20:03:33 -07:00
Mark Simulacrum
a42a3429fe
Move param_env onto SharedCrateContext, and move functions which need the ParamEnv onto it.
2016-12-20 20:03:32 -07:00
Mark Simulacrum
2b9a0efef4
Move debug_context to MirContext from FunctionContext
2016-12-20 20:03:32 -07:00
Mark Simulacrum
97a2096e5e
Inline and cleanup build_return_block
2016-12-20 20:03:31 -07:00
Mark Simulacrum
515d14f094
Inline/Replace finish with build_return_block
2016-12-20 20:03:31 -07:00
Mark Simulacrum
b48e74b5b0
Rename 'blk and 'bcx to 'a
2016-12-20 20:03:31 -07:00
Mark Simulacrum
c693bcc625
Inline memfill and merge with memset_intrinsic.
2016-12-20 20:03:30 -07:00
Mark-Simulacrum
1804131b6d
Remove Ref::clone for MirContext mir
2016-12-20 20:03:30 -07:00
Mark-Simulacrum
937001a1f8
Refactor Callee::call to take bcx by-reference.
...
Also change to not return anything; nothing used the return ValueRef.
Inlines with_cond.
2016-12-20 20:03:29 -07:00
Mark-Simulacrum
9a198534e2
Remove unused imports
2016-12-20 20:03:29 -07:00
Mark-Simulacrum
88b2024a28
Cleanup instruction counting
2016-12-20 20:03:29 -07:00
Mark-Simulacrum
9c38a54cae
Inline FunctionContext.mir
2016-12-20 20:03:28 -07:00
Mark-Simulacrum
85ab08084d
Remove global builder
2016-12-20 20:03:28 -07:00
Mark-Simulacrum
c4f6173af8
Replace init with get_entry_block.
2016-12-20 20:03:27 -07:00
Mark-Simulacrum
cbbdb73eb0
Remove FunctionContext::cleanup, replacing it with a Drop impl.
...
Move alloca and initial entry block creation into FunctionContext::new.
2016-12-20 20:03:27 -07:00
Mark-Simulacrum
bf8614b55a
Rename Builder::alloca to dynamic_alloca
2016-12-20 20:03:27 -07:00
Mark-Simulacrum
820164582d
Remove DebugLoc.
2016-12-20 20:03:24 -07:00
Mark-Simulacrum
28f511cfbd
Remove global Builder
2016-12-20 20:02:52 -07:00
Mark-Simulacrum
e0ccc81bbf
Remove needless allows
2016-12-20 20:02:52 -07:00
Mark-Simulacrum
da23332b65
Remove remaining traces of block_arena
2016-12-20 20:02:52 -07:00
Mark-Simulacrum
dda6c8cf2f
Inline base::malloc_raw_dyn.
...
Move comment about not unwinding into liballoc.
2016-12-20 20:02:52 -07:00
Mark-Simulacrum
6441c977cb
Remove push_ctxt
2016-12-20 20:02:50 -07:00
Mark-Simulacrum
28d00e781b
Remove cleanup scope from FunctionContext
2016-12-20 20:02:50 -07:00
Mark-Simulacrum
51dfba1185
Refactor Vec<CleanupScope> into Option<CleanupScope>.
2016-12-20 20:02:50 -07:00
Mark-Simulacrum
86b2bdb435
Rename LandingPad to Funclet
...
Changes internal storage to direct field values instead of Options,
since both fields are always either set or not set.
2016-12-20 20:02:48 -07:00
Mark-Simulacrum
8f3d824cc7
Remove common::Block.
2016-12-20 20:02:46 -07:00
Mark-Simulacrum
fec59c5f73
Replace lpad().and_then(..) with None
2016-12-20 20:01:41 -07:00
Mark-Simulacrum
ad0a901d37
Remove *_builder
2016-12-20 20:01:40 -07:00
Mark-Simulacrum
e77d928990
Add notes regarding malloc_raw_dyn being unwind incompatible
2016-12-20 20:01:40 -07:00
Mark-Simulacrum
59ef51c12a
Replace build.rs with calling functions on builder directly
2016-12-20 20:01:40 -07:00
Mark-Simulacrum
3f17ab9618
Remove unreachable and terminated from Block
2016-12-20 20:01:40 -07:00
Mark-Simulacrum
bf7d4534a7
Refactor Block into BlockAndBuilder
2016-12-20 20:01:40 -07:00
Austin Hicks
9966bbd1b1
Fix computation of enum names based off the discrfield in the case of the null pointer optimization. This functionality is needed by pretty printers for gdb and lldb.
2016-12-14 12:28:26 -05:00
Austin Hicks
cae94e8ec0
Optimize anything using a layout::Struct by introducing a mapping from source code field order to in-memory field order and sorting by alignment.
2016-12-14 12:28:18 -05:00
Michael Woerister
4a494ed8df
incr.comp.: Take symbol visibility into account for CGU hashes.
2016-12-09 17:47:56 -05:00
bors
1692c0b587
Auto merge of #37973 - vadimcn:dllimport, r=alexcrichton
...
Implement RFC 1717
Implement the first two points from #37403 .
r? @alexcrichton
2016-12-06 10:54:45 +00:00
Mark-Simulacrum
296ec5f9b7
Refactor FnSig to contain a Slice for its inputs and outputs.
2016-12-05 22:33:38 -07:00
Mark-Simulacrum
1eab19dba8
Refactor ty::FnSig to privatize all fields
2016-12-05 22:22:49 -07:00
Michael Woerister
133aeacf2f
Refactor symbol export list generation.
2016-12-05 11:05:25 -05:00
Michael Woerister
5fd7c2bfef
trans: Rename reachable
to exported_symbols
where appropriate.
2016-12-05 11:05:25 -05:00
Vadim Chugunov
bc019dfb39
Emit 'dllimport' attribute for dylib foreign items on Windows.
2016-12-01 16:22:04 -08:00
Michael Woerister
29a6ffa401
incr.comp.: Add more output to -Z incremental-info.
2016-11-30 17:33:52 -05:00