| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 210652
|
| |
|
|
| |
llvm-svn: 210645
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch moves part of the logic implemented by the target specific
combine rules added at r210477 to a separate helper function.
This should make easier to add more rules for matching AVX/AVX2 horizontal
adds/subs.
This patch also fixes a problem caused by a wrong check performed on indices
of extract_vector_elt dag nodes in input to the scalar adds/subs.
New tests have been added to verify that we correctly check indices of
extract_vector_elt dag nodes when selecting a horizontal operation.
llvm-svn: 210644
|
| |
|
|
|
|
|
|
| |
Pass initialization requires to initialize TargetMachine for back-end
specific passes. This commit creates a new macro INITIALIZE_TM_PASS to
simplify this kind of initialization.
llvm-svn: 210641
|
| |
|
|
|
|
|
|
| |
This commit is to improve global merge pass and support global symbol merge.
The global symbol merge is not enabled by default. For aarch64, we need some
more back-end fix to make it really benifit ADRP CSE.
llvm-svn: 210640
|
| |
|
|
| |
llvm-svn: 210639
|
| |
|
|
|
|
| |
pointers. Simpliies all in tree call sites. No functional change.
llvm-svn: 210638
|
| |
|
|
| |
llvm-svn: 210636
|
| |
|
|
|
|
|
| |
Some c++ libraries (libstdc++ at least) don't seem to map to the generic
category in in the system_category's default_error_condition.
llvm-svn: 210635
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most Windows platforms use auxiliary data for unwinding. This information is
stored in the .pdata section. The encoding format for the data differs between
architectures and Windows variants. Windows MIPS and Alpha use identical
formats; Alpha64 is the same with different widths. Windows x86_64 and Itanium
share the representation. All Windows CE entries are identical irrespective of
the architecture. ARMv7 (Windows [NT] on ARM) has its own format.
This enumeration will become the differentiator once the windows EH emission
infrastructure is generalised, allowing us to emit the necessary unwinding
information for Windows on ARM.
llvm-svn: 210634
|
| |
|
|
|
|
|
| |
Apply clang-format over the header. Reformat the docs to current LLVM style.
NFC.
llvm-svn: 210633
|
| |
|
|
|
|
|
|
|
|
| |
MSVC doesn't seem to provide any is_error_code_enum enumeration for the
windows errors.
Fortunately very few places in llvm have to handle raw windows errors, so
we can just construct the corresponding error_code directly.
llvm-svn: 210631
|
| |
|
|
| |
llvm-svn: 210630
|
| |
|
|
| |
llvm-svn: 210628
|
| |
|
|
|
|
|
| |
Extract these from some of my other patches, since this
is the only thing really making them dependent on each other.
llvm-svn: 210627
|
| |
|
|
| |
llvm-svn: 210623
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DwarfException served as a base class for exception handling directive emission.
However, this is also used by other exception models (e.g. Win64EH). Rename
this class to EHStreamer and split it out of DwarfException.h. NFC.
Use the opportunity to fix up some of the documentation comments to match
current LLVM style. Also rename some functions to conform better with current
LLVM coding style.
llvm-svn: 210622
|
| |
|
|
| |
llvm-svn: 210620
|
| |
|
|
|
|
| |
it's already on the subtarget.
llvm-svn: 210619
|
| |
|
|
|
|
| |
so that we can use initializer lists for the AArch64 Subtarget.
llvm-svn: 210616
|
| |
|
|
|
|
| |
so that we can use initializer lists for the X86Subtarget.
llvm-svn: 210614
|
| |
|
|
| |
llvm-svn: 210613
|
| |
|
|
| |
llvm-svn: 210610
|
| |
|
|
| |
llvm-svn: 210606
|
| |
|
|
|
|
|
| |
This currently necessitates a TargetMachine for the TargetLowering
constructor and TLOF.
llvm-svn: 210605
|
| |
|
|
|
|
| |
This reverts revision r210600.
llvm-svn: 210603
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes the functions llvm_start_multithreaded() and
llvm_stop_multithreaded(), and changes llvm_is_multithreaded()
to return a constant value based on the value of the compile-time
definition LLVM_ENABLE_THREADS.
Previously, it was possible to have compile-time support for
threads on, and runtime support for threads off, in which case
certain mutexes were not allocated or ever acquired. Now, if the
build is created with threads enabled, mutexes are always acquired.
A test before/after patch of compiling a very large TU showed no
noticeable performance impact of this change.
Reviewers: rnk
Differential Revision: http://reviews.llvm.org/D4076
llvm-svn: 210600
|
| |
|
|
| |
llvm-svn: 210599
|
| |
|
|
| |
llvm-svn: 210598
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It would previously say things like
warning: input 'test/Frontend/foo.c' contained no tests
and have the user pull their hair trying to figure out what's wrong with that
file. This patch changes the message to the much clearer:
warning: no such file or directory: 'test/Frontend/foo.c'
Differential Revision: http://reviews.llvm.org/D4097
llvm-svn: 210597
|
| |
|
|
| |
llvm-svn: 210596
|
| |
|
|
|
|
| |
using the subtarget.
llvm-svn: 210595
|
| |
|
|
|
|
| |
This reduces the difference between std::error_code and llvm::error_code.
llvm-svn: 210591
|
| |
|
|
|
|
| |
of using the cached TargetMachine.
llvm-svn: 210589
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I can't get VGPR spilling to work reliable, so for now just emit
an error when the register allocator tries to spill VGPRs.
v2:
- Fix build
v3:
- Added crash fix when spilling SPGRs
v4:
- Use V_MOV_B32 as a dummy instruction instead of S_NOP
Patch by: Darren Powell
https://bugs.freedesktop.org/show_bug.cgi?id=75276
llvm-svn: 210588
|
| |
|
|
|
|
|
|
|
|
|
| |
We need to make sure only one new instruction is added when spilling
otherwise the register allocator may crash.
This fixes a crash in the game Antichamber.
https://bugs.freedesktop.org/show_bug.cgi?id=75276
llvm-svn: 210587
|
| |
|
|
|
|
| |
This will be needed for the switch to std::error_code.
llvm-svn: 210581
|
| |
|
|
| |
llvm-svn: 210580
|
| |
|
|
|
|
|
| |
version of TargetLowering/Machine from there on the way to avoiding
TargetMachine in TargetLowering.
llvm-svn: 210579
|
| |
|
|
| |
llvm-svn: 210578
|
| |
|
|
| |
llvm-svn: 210575
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r206683.
The code was confusing SEH register numbers with DWARF register numbers.
The test case it was committed with was obviously incorrect. The
disassembler was roundtripping '.seh_pushreg %rsi' as '.seh_pushreg
%rbp', and other exciting things.
Noticed by Vadim Chugunov.
llvm-svn: 210574
|
| |
|
|
|
|
| |
!if([Something], []) would error with "No type for list".
llvm-svn: 210572
|
| |
|
|
| |
llvm-svn: 210571
|
| |
|
|
| |
llvm-svn: 210569
|
| |
|
|
| |
llvm-svn: 210568
|
| |
|
|
| |
llvm-svn: 210567
|
| |
|
|
| |
llvm-svn: 210566
|
| |
|
|
| |
llvm-svn: 210564
|
| |
|
|
| |
llvm-svn: 210563
|