llvm-project/llvm/test
Chandler Carruth ae0cafece8 [x86/retpoline] Split the LLVM concept of retpolines into separate
subtarget features for indirect calls and indirect branches.

This is in preparation for enabling *only* the call retpolines when
using speculative load hardening.

I've continued to use subtarget features for now as they continue to
seem the best fit given the lack of other retpoline like constructs so
far.

The LLVM side is pretty simple. I'd like to eventually get rid of the
old feature, but not sure what backwards compatibility issues that will
cause.

This does remove the "implies" from requesting an external thunk. This
always seemed somewhat questionable and is now clearly not desirable --
you specify a thunk the same way no matter which set of things are
getting retpolines.

I really want to keep this nicely isolated from end users and just an
LLVM implementation detail, so I've moved the `-mretpoline` flag in
Clang to no longer rely on a specific subtarget feature by that name and
instead to be directly handled. In some ways this is simpler, but in
order to preserve existing behavior I've had to add some fallback code
so that users who relied on merely passing -mretpoline-external-thunk
continue to get the same behavior. We should eventually remove this
I suspect (we have never tested that it works!) but I've not done that
in this patch.

Differential Revision: https://reviews.llvm.org/D51150

llvm-svn: 340515
2018-08-23 06:06:38 +00:00
..
Analysis [AST] Add a test for attribute intersection 2018-08-22 21:10:56 +00:00
Assembler [DebugInfoMetadata] Added DIFlags interface in DIBasicType. 2018-08-14 19:35:34 +00:00
Bindings
Bitcode DebugInfo: Add metadata support for disabling DWARF pub sections 2018-08-16 21:29:55 +00:00
BugPoint [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
CodeGen [x86/retpoline] Split the LLVM concept of retpolines into separate 2018-08-23 06:06:38 +00:00
DebugInfo Revert r340508: [DebugInfo] Fix bug in LiveDebugVariables. 2018-08-23 05:39:02 +00:00
Demangle [MS Demangler] Print template constructor args. 2018-08-21 22:52:52 +00:00
Examples
ExecutionEngine [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
Feature
FileCheck [FileCheck] Provide an option for FileCheck to dump original input to stderr on failure 2018-07-20 20:21:57 +00:00
Instrumentation Fix global_metadata_external_comdat.ll test 2018-08-21 00:03:21 +00:00
Integer
JitListener
LTO Enrich inline messages 2018-08-05 14:53:08 +00:00
Linker
MC MC: Don't align COFF section contents. 2018-08-23 05:39:36 +00:00
Object [WASM] Fix overflow when reading custom section 2018-08-08 16:34:03 +00:00
ObjectYAML
Other [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
ThinLTO/X86 [Support][CachePruning] prune least recently accessed files first 2018-08-22 00:52:16 +00:00
Transforms [LibCalls] Added returned attribute to libcalls 2018-08-23 05:18:23 +00:00
Unit
Verifier [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa. 2018-08-21 04:27:07 +00:00
YAMLParser
tools [gold] -thinlto-object-suffix-replace: don't append new suffix if path does not end with old suffix 2018-08-22 02:11:36 +00:00
.clang-format
CMakeLists.txt Make check-llvm depend on llvm-undname 2018-07-20 18:42:19 +00:00
TestRunner.sh
lit.cfg.py [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
lit.site.cfg.py.in