llvm-project/clang/lib/Frontend
Kristina Brooks 7f569b7c4f Add support for -mno-tls-direct-seg-refs to Clang
This patch exposes functionality added in rL344723 to the Clang driver/frontend
as a flag and adds appropriate metadata.

Driver tests pass:
```
ninja check-clang-driver
-snip-
  Expected Passes    : 472
  Expected Failures  : 3
  Unsupported Tests  : 65
```

Odd failure in CodeGen tests but unrelated to this:
```
ninja check-clang-codegen
-snip-
/SourceCache/llvm-trunk-8.0/tools/clang/test/CodeGen/builtins-wasm.c:87:10:
error: cannot compile this builtin function yet
-snip-
Failing Tests (1):
    Clang :: CodeGen/builtins-wasm.c

  Expected Passes    : 1250
  Expected Failures  : 2
  Unsupported Tests  : 120
  Unexpected Failures: 1
```

Original commit:
[X86] Support for the mno-tls-direct-seg-refs flag
Allows to disable direct TLS segment access (%fs or %gs). GCC supports a
similar flag, it can be useful in some circumstances, e.g. when a thread
context block needs to be updated directly from user space. More info and
specific use cases: https://bugs.llvm.org/show_bug.cgi?id=16145

Patch by nruslan (Ruslan Nikolaev).

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

llvm-svn: 344739
2018-10-18 14:07:02 +00:00
..
Rewrite [modules] Support use of -E on modules built from the command line. 2018-09-15 01:21:18 +00:00
ASTConsumers.cpp [Frontend] Delete -print-decl-contexts 2018-10-03 03:50:44 +00:00
ASTMerge.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ASTUnit.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CMakeLists.txt Use special new Clang flag 'FrontendTimesIsEnabled' instead of 'llvm::TimePassesIsEnabled' inside -ftime-report feature. 2018-04-23 09:22:30 +00:00
CacheTokens.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
ChainedDiagnosticConsumer.cpp
ChainedIncludesSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
CodeGenOptions.cpp Use an enum value instead of a string. 2018-01-18 00:20:03 +00:00
CompilerInstance.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CompilerInvocation.cpp Add support for -mno-tls-direct-seg-refs to Clang 2018-10-18 14:07:02 +00:00
CreateInvocationFromCommandLine.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
DependencyFile.cpp Add a callback for `__has_include` and use it for dependency scanning. 2018-09-18 23:27:02 +00:00
DependencyGraph.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
DiagnosticRenderer.cpp llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...) 2018-09-26 22:16:28 +00:00
FrontendAction.cpp Remove top-level using declaration from header files, as these aliases leak. 2018-10-12 12:21:29 +00:00
FrontendActions.cpp [Frontend] Delete -print-decl-contexts 2018-10-03 03:50:44 +00:00
FrontendOptions.cpp [Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-26 21:45:04 +00:00
FrontendTiming.cpp Use special new Clang flag 'FrontendTimesIsEnabled' instead of 'llvm::TimePassesIsEnabled' inside -ftime-report feature. 2018-04-23 09:22:30 +00:00
HeaderIncludeGen.cpp [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P 2018-05-04 15:58:31 +00:00
InitHeaderSearch.cpp [frontend] Don't include the C++ stdlib for -x assembler-with-cpp 2018-06-28 23:23:45 +00:00
InitPreprocessor.cpp Reverted the "[CUDA/OpenMP] Define only some host macros during device compilation" 2018-08-30 20:43:39 +00:00
LangStandards.cpp Don't accept -std= values that would switch us to a different source language. 2017-04-26 23:44:33 +00:00
LayoutOverrideSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
LogDiagnosticPrinter.cpp
ModuleDependencyCollector.cpp Reland '[clang] Adding CharacteristicKind to PPCallbacks::InclusionDirective' 2018-05-10 19:05:36 +00:00
MultiplexConsumer.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
PCHContainerOperations.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
PrecompiledPreamble.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
PrintPreprocessedOutput.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SerializedDiagnosticPrinter.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SerializedDiagnosticReader.cpp [Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-26 21:45:04 +00:00
TestModuleFileExtension.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
TestModuleFileExtension.h
TextDiagnostic.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
TextDiagnosticBuffer.cpp [Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-22 00:53:26 +00:00
TextDiagnosticPrinter.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
VerifyDiagnosticConsumer.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00