rust/src/test/codegen
bors 42eb5ff404 Auto merge of #55641 - nagisa:optimize-attr, r=pnkfelix
Implement optimize(size) and optimize(speed) attributes

This PR implements both `optimize(size)` and `optimize(speed)` attributes.

While the functionality itself works fine now, this PR is not yet complete: the code might be messy in places and, most importantly, the compiletest must be improved with functionality to run tests with custom optimization levels. Otherwise the new attribute cannot be tested properly. Oh, and not all of the RFC is implemented – attribute propagation is not implemented for example.

# TODO

* [x] Improve compiletest so that tests can be written;
* [x] Assign a proper error number (E9999 currently, no idea how to allocate a number properly);
* [ ] Perhaps reduce the duplication in LLVM attribute assignment code…
2019-01-26 07:08:18 +00:00
..
auxiliary Remove licenses 2018-12-25 21:08:33 -07:00
dllimports Remove licenses 2018-12-25 21:08:33 -07:00
remap_path_prefix Remove licenses 2018-12-25 21:08:33 -07:00
abi-main-signature-16bit-c-int.rs Remove licenses 2018-12-25 21:08:33 -07:00
abi-main-signature-32bit-c-int.rs Remove licenses 2018-12-25 21:08:33 -07:00
abi-sysv64.rs Remove licenses 2018-12-25 21:08:33 -07:00
abi-x86-interrupt.rs Remove licenses 2018-12-25 21:08:33 -07:00
abi-x86_64_sysv.rs Remove licenses 2018-12-25 21:08:33 -07:00
adjustments.rs Remove licenses 2018-12-25 21:08:33 -07:00
align-struct.rs Remove licenses 2018-12-25 21:08:33 -07:00
alloc-optimisation.rs Remove licenses 2018-12-25 21:08:33 -07:00
box-maybe-uninit.rs Remove licenses 2018-12-25 21:08:33 -07:00
call-metadata.rs Remove licenses 2018-12-25 21:08:33 -07:00
coercions.rs Remove licenses 2018-12-25 21:08:33 -07:00
consts.rs Remove licenses 2018-12-25 21:08:33 -07:00
dealloc-no-unwind.rs Remove licenses 2018-12-25 21:08:33 -07:00
drop.rs Remove licenses 2018-12-25 21:08:33 -07:00
enum-bounds-check.rs Remove licenses 2018-12-25 21:08:33 -07:00
enum-debug-clike.rs Rebase to the llvm-project monorepo 2019-01-25 15:39:54 -08:00
enum-debug-niche-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
enum-debug-niche.rs Remove licenses 2018-12-25 21:08:33 -07:00
enum-debug-tagged.rs Remove licenses 2018-12-25 21:08:33 -07:00
exact_div.rs Remove licenses 2018-12-25 21:08:33 -07:00
export-no-mangle.rs Remove licenses 2018-12-25 21:08:33 -07:00
extern-functions.rs Remove licenses 2018-12-25 21:08:33 -07:00
external-no-mangle-fns.rs Remove licenses 2018-12-25 21:08:33 -07:00
external-no-mangle-statics.rs Remove licenses 2018-12-25 21:08:33 -07:00
fastcall-inreg.rs Remove licenses 2018-12-25 21:08:33 -07:00
fatptr.rs Remove licenses 2018-12-25 21:08:33 -07:00
float_math.rs Remove licenses 2018-12-25 21:08:33 -07:00
foo.s Add global_asm tests 2017-04-12 19:12:50 -05:00
force-frame-pointers.rs Remove licenses 2018-12-25 21:08:33 -07:00
function-arguments.rs Remove licenses 2018-12-25 21:08:33 -07:00
gdb_debug_script_load.rs Remove licenses 2018-12-25 21:08:33 -07:00
generic-debug.rs Remove licenses 2018-12-25 21:08:33 -07:00
global_asm.rs Remove licenses 2018-12-25 21:08:33 -07:00
global_asm_include.rs Remove licenses 2018-12-25 21:08:33 -07:00
global_asm_x2.rs Remove licenses 2018-12-25 21:08:33 -07:00
inline-always-works-always.rs Support revisions for codegen tests 2019-01-24 20:13:51 +02:00
internalize-closures.rs Remove licenses 2018-12-25 21:08:33 -07:00
intrinsic-no-unnamed-attr.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-13018.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-15953.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-32031.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-32364.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-34947-pow-i32.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-37945.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-44056-macos-tls-align.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-45222.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-45466.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-47278.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-47442.rs Remove licenses 2018-12-25 21:08:33 -07:00
issue-56267-2.rs rustc_codegen_llvm: don't overalign loads of pair operands. 2018-11-29 00:37:38 +02:00
issue-56267.rs Fix alignment of stores to scalar pair 2018-11-28 00:31:03 +01:00
issue-56927.rs Fix alignment for array indexing 2018-12-21 23:51:55 +01:00
lifetime_start_end.rs Remove licenses 2018-12-25 21:08:33 -07:00
likely.rs Remove licenses 2018-12-25 21:08:33 -07:00
link-dead-code.rs Remove licenses 2018-12-25 21:08:33 -07:00
link_section.rs Remove licenses 2018-12-25 21:08:33 -07:00
loads.rs Remove licenses 2018-12-25 21:08:33 -07:00
local-generics-in-exe-internalized.rs Remove licenses 2018-12-25 21:08:33 -07:00
lto-removes-invokes.rs Remove licenses 2018-12-25 21:08:33 -07:00
mainsubprogram.rs Remove licenses 2018-12-25 21:08:33 -07:00
mainsubprogramstart.rs Remove licenses 2018-12-25 21:08:33 -07:00
match-optimizes-away.rs Remove licenses 2018-12-25 21:08:33 -07:00
match.rs Remove licenses 2018-12-25 21:08:33 -07:00
mir_zst_stores.rs Remove licenses 2018-12-25 21:08:33 -07:00
move-val-init.rs Remove licenses 2018-12-25 21:08:33 -07:00
naked-functions.rs Remove licenses 2018-12-25 21:08:33 -07:00
no-assumes-on-casts.rs Remove licenses 2018-12-25 21:08:33 -07:00
no-dllimport-w-cross-lang-lto.rs Remove licenses 2018-12-25 21:08:33 -07:00
no-output-asm-is-volatile.rs Remove licenses 2018-12-25 21:08:33 -07:00
no-plt.rs Remove licenses 2018-12-25 21:08:33 -07:00
nontemporal.rs Remove licenses 2018-12-25 21:08:33 -07:00
noreturnflag.rs Remove licenses 2018-12-25 21:08:33 -07:00
nounwind-extern.rs Remove licenses 2018-12-25 21:08:33 -07:00
nounwind.rs Remove licenses 2018-12-25 21:08:33 -07:00
optimize-attr-1.rs Support revisions for codegen tests 2019-01-24 20:13:51 +02:00
packed.rs Remove licenses 2018-12-25 21:08:33 -07:00
panic-abort-windows.rs Remove licenses 2018-12-25 21:08:33 -07:00
personality_lifetimes.rs Remove licenses 2018-12-25 21:08:33 -07:00
prefetch.rs Remove licenses 2018-12-25 21:08:33 -07:00
refs.rs Remove licenses 2018-12-25 21:08:33 -07:00
repeat-trusted-len.rs Remove licenses 2018-12-25 21:08:33 -07:00
repr-transparent-aggregates-1.rs Remove licenses 2018-12-25 21:08:33 -07:00
repr-transparent-aggregates-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
repr-transparent-aggregates-3.rs Remove licenses 2018-12-25 21:08:33 -07:00
repr-transparent-sysv64.rs Remove licenses 2018-12-25 21:08:33 -07:00
repr-transparent.rs Remove licenses 2018-12-25 21:08:33 -07:00
scalar-pair-bool.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-abs.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-ceil.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-cos.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-exp.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-exp2.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-floor.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-fma.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-fsqrt.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-log.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-log2.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-log10.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-minmax.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-pow.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-powi.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-float-sin.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-bitmask.rs Add intrinsic to create an integer bitmask from the MSB of integer vectors 2019-01-22 09:39:09 +01:00
simd-intrinsic-generic-gather.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-scatter.rs Remove licenses 2018-12-25 21:08:33 -07:00
simd-intrinsic-generic-select.rs Remove licenses 2018-12-25 21:08:33 -07:00
slice-init.rs Remove licenses 2018-12-25 21:08:33 -07:00
slice-position-bounds-check.rs Remove licenses 2018-12-25 21:08:33 -07:00
sparc-struct-abi.rs Remove licenses 2018-12-25 21:08:33 -07:00
stack-probes.rs Remove licenses 2018-12-25 21:08:33 -07:00
stores.rs Remove licenses 2018-12-25 21:08:33 -07:00
swap-small-types.rs Remove licenses 2018-12-25 21:08:33 -07:00
target-cpu-on-functions.rs Remove licenses 2018-12-25 21:08:33 -07:00
target-feature-on-functions.rs Remove licenses 2018-12-25 21:08:33 -07:00
unchecked-float-casts.rs Remove licenses 2018-12-25 21:08:33 -07:00
union-abi.rs Remove licenses 2018-12-25 21:08:33 -07:00
vec-clear.rs Remove licenses 2018-12-25 21:08:33 -07:00
vec-iter-collect-len.rs Remove licenses 2018-12-25 21:08:33 -07:00
vec-optimizes-away.rs Remove licenses 2018-12-25 21:08:33 -07:00
vtabletype.rs Remove licenses 2018-12-25 21:08:33 -07:00
x86_mmx.rs Remove licenses 2018-12-25 21:08:33 -07:00
zip.rs Remove licenses 2018-12-25 21:08:33 -07:00