llvm-project/clang/lib/Basic
Mikhail Maltsev 89f7b46b7a [Targets] Implement getConstraintRegister for ARM and AArch64
Summary:
The getConstraintRegister method is used by semantic checking of
inline assembly statements in order to diagnose conflicts between
clobber list and input/output lists. Currently ARM and AArch64 don't
override getConstraintRegister, so conflicts between registers
assigned to variables in asm labels and clobber lists are not
diagnosed. Such conflicts can cause assertion failures in the back end
and even miscompilations.

This patch implements getConstraintRegister for ARM and AArch64
targets. Since these targets don't have single-register constraints,
the implementation is trivial and just returns the register specified
in an asm label (if any).

Reviewers: eli.friedman, javed.absar, thopre

Reviewed By: thopre

Subscribers: rengolin, eraman, rogfer01, myatsina, kristof.beyls, cfe-commits, chrib

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

llvm-svn: 331164
2018-04-30 09:11:08 +00:00
..
Targets [Targets] Implement getConstraintRegister for ARM and AArch64 2018-04-30 09:11:08 +00:00
Attributes.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
Builtins.cpp Limit types of builtins that can be redeclared. 2018-04-16 21:30:08 +00:00
CMakeLists.txt [XRay][clang] Add flag to choose instrumentation bundles 2018-04-13 02:31:58 +00:00
CharInfo.cpp
Cuda.cpp [CUDA] Enable CUDA compilation with CUDA-9.2 2018-04-24 18:23:19 +00:00
Diagnostic.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-02-16 23:40:07 +00:00
DiagnosticIDs.cpp Fix typos in clang 2018-04-06 15:14:32 +00:00
DiagnosticOptions.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-02-16 23:40:07 +00:00
FileManager.cpp Revert r329698 (and r329702). 2018-04-27 20:29:57 +00:00
FileSystemStatCache.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-28 22:09:09 +00:00
IdentifierTable.cpp Defer adding keywords to the identifier table until after the language options have been loaded from the AST file. 2018-04-16 21:07:08 +00:00
LangOptions.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-02-16 23:40:07 +00:00
MemoryBufferCache.cpp Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
Module.cpp Record whether a module came from a private module map 2018-04-20 17:16:04 +00:00
ObjCRuntime.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-28 22:09:09 +00:00
OpenMPKinds.cpp [OPENMP] Initial codegen for `target teams distribute parallel for 2018-01-15 20:59:40 +00:00
OperatorPrecedence.cpp [c++20] P0515R3: Parsing support and basic AST construction for operator <=>. 2017-12-14 15:16:18 +00:00
SanitizerBlacklist.cpp Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
SanitizerSpecialCaseList.cpp Update SanitizerSpecialCaseList to use renamed functions in base class. 2017-11-07 21:16:37 +00:00
Sanitizers.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-28 22:09:09 +00:00
SourceLocation.cpp PR37189 Fix incorrect end source location and spelling for a split '>>' token. 2018-04-30 05:25:48 +00:00
SourceManager.cpp PR37189 Fix incorrect end source location and spelling for a split '>>' token. 2018-04-30 05:25:48 +00:00
TargetInfo.cpp [ObjC++] Make parameter passing and function return compatible with ObjC 2018-03-28 21:13:14 +00:00
Targets.cpp [TargetInfo] Sort target features before passing them to the backend 2018-04-25 19:14:05 +00:00
Targets.h [CUDA] Revert defining __CUDA_ARCH__ for amdgcn targets 2018-04-09 15:43:01 +00:00
TokenKinds.cpp
Version.cpp
VersionTuple.cpp MS ABI: Implement driver-level support for thread-safe statics 2015-03-22 08:39:22 +00:00
VirtualFileSystem.cpp s/LLVM_ON_WIN32/_WIN32/, clang 2018-04-27 19:11:14 +00:00
Warnings.cpp
XRayInstr.cpp [XRay] Add clang builtin for xray typed events. 2018-04-17 21:32:43 +00:00
XRayLists.cpp [XRay][llvm+clang] Consolidate attribute list files 2018-04-09 04:02:09 +00:00