rust/src/test/codegen
Björn Steinbrink a17fb64fce Workaround LLVM optimizer bug by not marking &mut pointers as noalias
LLVM's memory dependence analysis doesn't properly account for calls
that could unwind and thus effectively act as a branching point. This
can lead to stores that are only visible when the call unwinds being
removed, possibly leading to calls to drop() functions with b0rked
memory contents.

As there is no fix for this in LLVM yet and we want to keep
compatibility to current LLVM versions anyways, we have to workaround
this bug by omitting the noalias attribute on &mut function arguments.
Benchmarks suggest that the performance loss by this change is very
small.

Thanks to @RalfJung for pushing me towards not removing too many
noalias annotations and @alexcrichton for helping out with the test for
this bug.

Fixes #29485
2016-02-10 23:09:47 +01:00
..
adjustments.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00
coercions.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00
consts.rs Set proper alignment on constants 2015-10-10 01:15:36 +02:00
drop.rs Avoid quadratic growth of functions due to cleanups 2016-02-04 00:34:53 +01:00
extern-functions.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00
fatptr.rs Avoid FCA loads and extractvalue when copying fat pointers 2015-11-20 21:42:13 +01:00
function-arguments.rs Workaround LLVM optimizer bug by not marking &mut pointers as noalias 2016-02-10 23:09:47 +01:00
gdb_debug_script_load.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00
intrinsic-no-unnamed-attr.rs Don't add unnamed address attributes to intrinsics. 2015-09-06 19:26:41 -05:00
link_section.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00
loads.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00
match.rs Tell LLVM when a match is exhaustive 2015-09-25 11:09:19 +02:00
mir_zst_stores.rs [MIR] Avoid some code generation for stores of ZST 2016-01-12 21:35:10 +02:00
refs.rs Avoid unnecessary temporaries when ref'ing a DST value 2015-10-01 15:24:23 +02:00
stores.rs Avoid loading the whole gdb debug scripts section. 2015-09-21 15:43:52 -05:00