| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 181227
|
| |
|
|
| |
llvm-svn: 181226
|
| |
|
|
|
|
| |
Reviewed-by: Vincent Lejeune <vljn@ovi.com>
Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 181225
|
| |
|
|
| |
llvm-svn: 181224
|
| |
|
|
|
|
| |
Reviewed-by: Vincent Lejeune <vljn@ovi.com>
Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 181223
|
| |
|
|
|
|
|
|
|
|
|
|
| |
As pointed out by Rafael Espindola, we should match the DWARF encodings
produced by GCC in both pic and non-pic modes. This was not the case
for the non-pic case.
This patch changes all DWARF encodings to DW_EH_PE_absptr for the
non-pic case, just like GCC does. The test case is updated to check
for both variants.
llvm-svn: 181222
|
| |
|
|
|
|
|
| |
This patch handles the R_PPC64_REL64 relocation type for powerpc64
for mcjit.
llvm-svn: 181220
|
| |
|
|
| |
llvm-svn: 181219
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A * (1 - (uitofp i1 C)) -> select C, 0, A
B * (uitofp i1 C) -> select C, B, 0
select C, 0, A + select C, B, 0 -> select C, B, A
These come up in code that has been hand-optimized from a select to a linear blend,
on platforms where that may have mattered. We want to undo such changes
with the following transform:
A*(1 - uitofp i1 C) + B*(uitofp i1 C) -> select C, A, B
llvm-svn: 181216
|
| |
|
|
|
|
|
| |
This just enables some testing I'd missed after implementing MCJIT
support.
llvm-svn: 181215
|
| |
|
|
|
|
|
|
|
| |
This patch finally enables the SystemZ target in the default build
(with --enable-targets=all).
Patch by Richard Sandiford.
llvm-svn: 181209
|
| |
|
|
|
|
|
|
|
|
| |
This patch wires up the SystemZ target in configure, so that it can now be
built using --enable-targets=systemz. It is not yet included in the default
build (--enable-targets=all); this will be done by a follow-up patch.
Patch by Richard Sandiford.
llvm-svn: 181208
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch adds the necessary configuration bits and #ifdef's to set up
the JIT/MCJIT test cases for SystemZ. Like other recent targets, we do
fully support MCJIT, but do not support the old JIT at all. Set up the
lit config files accordingly, and disable old-JIT unit tests.
Patch by Richard Sandiford.
llvm-svn: 181207
|
| |
|
|
|
|
|
|
| |
This adds all MC tests for the SystemZ target.
Patch by Richard Sandiford.
llvm-svn: 181206
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds all DebugInfo tests for the SystemZ target.
This version of the patch incorporates feedback from reviews by
Eric Christopher and Rafael Espindola. Thanks to all reviewers!
Patch by Richard Sandiford.
llvm-svn: 181205
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds all CodeGen tests for the SystemZ target.
This version of the patch incorporates feedback from a review by
Sean Silva. Thanks to all reviewers!
Patch by Richard Sandiford.
llvm-svn: 181204
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the actual lib/Target/SystemZ target files necessary to
implement the SystemZ target. Note that at this point, the target
cannot yet be built since the configure bits are missing. Those
will be provided shortly by a follow-on patch.
This version of the patch incorporates feedback from reviews by
Chris Lattner and Anton Korobeynikov. Thanks to all reviewers!
Patch by Richard Sandiford.
llvm-svn: 181203
|
| |
|
|
|
|
|
|
|
|
| |
This is another patch in preparation for adding the SystemZ target.
It defines the appropriate values for DWARF encodings; the intent
is to be compatible with what GCC currently does on the target.
Patch by Richard Sandiford.
llvm-svn: 181201
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Several platforms need to disable all old-JIT unit tests, since they only
support the new MCJIT. This currently done via #ifdef'ing out those tests
in the ExecutionEngine/JIT/*.cpp files. As those #ifdef's have grown
historically, we now have a number of repeated directives which -in total-
cover nearly the whole file, but leave a couple of helper functions out.
When building the tests with clang itself, those helper functions now
cause spurious "unused function" warnings.
To fix those warnings, and also to remove the duplicate #ifdef conditions
and make it easier to disable the tests for a new target, this patch
consolidates the #ifdefs into a single one per file, which covers all
the tests including all helper routines.
Tested on PowerPC and SystemZ.
llvm-svn: 181200
|
| |
|
|
| |
llvm-svn: 181195
|
| |
|
|
|
|
|
|
| |
As pointed out by Evgeniy Stepanov, assigning a std::string temporary
to a StringRef is not a good idea. Rework MatchRegisterName to avoid
using the .lower routine.
llvm-svn: 181192
|
| |
|
|
| |
llvm-svn: 181189
|
| |
|
|
|
|
| |
(Would sometimes optimize away conacts used to extend a vector with undef values)
llvm-svn: 181186
|
| |
|
|
|
|
| |
pointers or not depending upon the function attributes.
llvm-svn: 181180
|
| |
|
|
|
|
|
| |
Looks like symbol resolution is not working on cygwin, the test fails
because __gxx_personality_v0 is not found.
llvm-svn: 181179
|
| |
|
|
| |
llvm-svn: 181178
|
| |
|
|
|
|
| |
Thanks Nick Lewycky for pointing this out.
llvm-svn: 181177
|
| |
|
|
|
|
| |
Use unknown results for places where it would be needed
llvm-svn: 181176
|
| |
|
|
|
|
|
| |
We used to disable constant merging not only if a constant is llvm.used, but
also if an alias of a constant is llvm.used. This change fixes that.
llvm-svn: 181175
|
| |
|
|
|
|
| |
We currently have no way to register new eh frames on ARM.
llvm-svn: 181172
|
| |
|
|
| |
llvm-svn: 181171
|
| |
|
|
|
|
| |
It looks like eh uses an unimplemented relocation on pp64
llvm-svn: 181169
|
| |
|
|
| |
llvm-svn: 181168
|
| |
|
|
|
|
|
|
|
| |
This gets exception handling working on ELF and Macho (x86-64 at least).
Other than the EH frame registration, this patch also implements support
for GOT relocations which are used to locate the personality function on
MachO.
llvm-svn: 181167
|
| |
|
|
| |
llvm-svn: 181162
|
| |
|
|
|
|
|
|
|
|
| |
indirect branch at the end of the BB. Otherwise if-converter, branch folding
pass may incorrectly update its successor info if it consider BB as fallthrough
to the next BB.
rdar://13782395
llvm-svn: 181161
|
| |
|
|
|
|
| |
rdar://13782395
llvm-svn: 181160
|
| |
|
|
| |
llvm-svn: 181157
|
| |
|
|
|
|
|
| |
Disassembler support has recently been added. Fill in some other unknowns
at the same time.
llvm-svn: 181156
|
| |
|
|
|
|
|
| |
With the change the disassembler now supports the XCore ISA in its
entirety.
llvm-svn: 181155
|
| |
|
|
| |
llvm-svn: 181154
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 181153
|
| |
|
|
| |
llvm-svn: 181152
|
| |
|
|
|
|
|
|
| |
Instead operands are treated as negative immediates
where the sign bit is implicit in the instruction
encoding.
llvm-svn: 181151
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 181149
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now even the small structures could be passed within byval (small enough
to be stored in GPRs).
In regression tests next function prototypes are checked:
PR15293:
%artz = type { i32 }
define void @foo(%artz* byval %s)
define void @foo2(%artz* byval %s, i32 %p, %artz* byval %s2)
foo: "s" stored in R0
foo2: "s" stored in R0, "s2" stored in R2.
Next AAPCS rules are checked:
5.5 Parameters Passing, C.4 and C.5,
"ParamSize" is parameter size in 32bit words:
-- NSAA != 0, NCRN < R4 and NCRN+ParamSize > R4.
Parameter should be sent to the stack; NCRN := R4.
-- NSAA != 0, and NCRN < R4, NCRN+ParamSize < R4.
Parameter stored in GPRs; NCRN += ParamSize.
llvm-svn: 181148
|
| |
|
|
| |
llvm-svn: 181147
|
| |
|
|
| |
llvm-svn: 181146
|
| |
|
|
|
|
|
|
|
|
|
|
| |
X86ISelLowering has support to treat:
(icmp ne (and (xor %flags, -1), (shl 1, flag)), 0)
as if it were actually:
(icmp eq (and %flags, (shl 1, flag)), 0)
However, r179386 has code at the InstCombine level to handle this.
llvm-svn: 181145
|
| |
|
|
|
|
|
|
|
|
| |
Add support for min/max reductions when "no-nans-float-math" is enabled. This
allows us to assume we have ordered floating point math and treat ordered and
unordered predicates equally.
radar://13723044
llvm-svn: 181144
|