| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
The notes for 3.7 are on the 3.7 branch.
llvm-svn: 242238
|
| |
|
|
|
|
| |
The notes for 3.7 are on the 3.7 branch.
llvm-svn: 242237
|
| |
|
|
| |
llvm-svn: 242236
|
| |
|
|
|
|
|
| |
This exposes further optimization opportunities if the selects are
correlated.
llvm-svn: 242235
|
| |
|
|
|
|
| |
VerifyJobActions never have multiple inputs.
llvm-svn: 242223
|
| |
|
|
| |
llvm-svn: 242222
|
| |
|
|
|
|
| |
[-Wdocumentation]
llvm-svn: 242221
|
| |
|
|
|
|
| |
The goal is to start hiding internal APIs.
llvm-svn: 242220
|
| |
|
|
|
|
|
| |
Turn this structure-of-arrays (i.e. the various pointer attributes) into
array-of-structures.
llvm-svn: 242219
|
| |
|
|
|
|
|
|
|
| |
I am planning to add more nested classes inside RuntimePointerCheck so
all these triple-nesting would be hard to follow.
Also rename it to RuntimePointerChecking (i.e. append 'ing').
llvm-svn: 242218
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We used to take the address specified as the direct target of the patchpoint
and did no TOC-pointer handling. This, however, as not all that useful,
because MCJIT tends to create a lot of modules, and they have their own TOC
sections. Thus, to call from the generated code to other generated code, you
really need to switch TOC pointers. Make this work as expected, and under
ELFv1, tread the address as the function descriptor address so that the correct
TOC pointer can be loaded.
llvm-svn: 242217
|
| |
|
|
| |
llvm-svn: 242216
|
| |
|
|
|
|
|
|
|
|
| |
For now the Archive owns the buffers of the thin archive members.
This makes for a simple API, but all the buffers are destructed
only when the archive is destructed. This should be fine since we
close the files after mmap so we should not hit an open file
limit.
llvm-svn: 242215
|
| |
|
|
| |
llvm-svn: 242214
|
| |
|
|
|
|
| |
Patch by Pierre-Andre Saulais. Thanks Pierre-Andre!
llvm-svn: 242213
|
| |
|
|
|
|
|
|
|
|
|
| |
SelectionDAG already had begin/end methods for iterating over all
the nodes, but didn't define an iterator_range for us in foreach
loops.
This adds such a method and uses it in some of the eligible places
throughout the backends.
llvm-svn: 242212
|
| |
|
|
|
|
|
|
| |
There was a 32-bit padding gap between 'unsigned short NumOperands, NumValues;' and 'DebugLoc debugLoc. Move 'unsigned IROrder' in to that gap.
This trims the size of SDNode's from 76 bytes (really 80 due to alignment) to 72 bytes.
llvm-svn: 242211
|
| |
|
|
| |
llvm-svn: 242210
|
| |
|
|
|
|
|
|
| |
The simplify_type specialisation allows us to cast directly from
SDValue to an SDNode* subclass so we don't need to pass a SDNode*
to cast<>.
llvm-svn: 242209
|
| |
|
|
| |
llvm-svn: 242208
|
| |
|
|
|
|
|
|
|
| |
I am adding support for thin archives. On those, getting the buffer
involves reading another file.
Since we only need an id in here, use the member offset in the archive.
llvm-svn: 242205
|
| |
|
|
| |
llvm-svn: 242204
|
| |
|
|
|
|
|
|
| |
This commit moves the function 'printReg' towards the start of the file so that
it can be used by the conversion methods in MIRPrinter and not just the printing
methods in MIPrinter.
llvm-svn: 242203
|
| |
|
|
| |
llvm-svn: 242202
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: This patch has the most basic instruction codegen for 32 and 64 bit int/fp.
Reviewers: sunfish
Subscribers: llvm-commits, jfb
Differential Revision: http://reviews.llvm.org/D11193
llvm-svn: 242201
|
| |
|
|
| |
llvm-svn: 242200
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes an incidentally created instruction can duplicate a Value used
elsewhere. It then often doesn't end up in the leader table. If it's later
removed, we attempt to remove it from the leader table and segfault.
Instead we should just ignore the removal request, which won't cause any
problems. The reverse situation, where the original instruction is replaced by
the new one (which you might think could leave the leader table empty) cannot
occur, because the incidental instruction will never be found in the first
place.
llvm-svn: 242199
|
| |
|
|
|
|
|
|
|
|
| |
can be different from the normal variable maximum.
Add an error diagnostic for when TLS variables exceed maximum TLS alignment.
Currenty only PS4 sets an explicit maximum TLS alignment.
Patch by Charles Li!
llvm-svn: 242198
|
| |
|
|
| |
llvm-svn: 242197
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: This aligns the library names used by the Makefile build to be the same as those create by the CMake build to make switching between the two easier. The only major difficulty was lldbHost which was one library in the CMake system and several in the Makefile system. Most of the other changes are trivial renames.
Reviewers: labath
Subscribers: emaste, tberghammer, lldb-commits
Differential Revision: http://reviews.llvm.org/D11154
llvm-svn: 242196
|
| |
|
|
| |
llvm-svn: 242195
|
| |
|
|
|
|
| |
After r242187, it's never set.
llvm-svn: 242194
|
| |
|
|
| |
llvm-svn: 242193
|
| |
|
|
| |
llvm-svn: 242192
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MOVSDto64rr and MOV64toSDrr are defined to convert between FR64 (%xmm)
<-> GR64 registers, not VR64 (%mm) <-> GR64. This is wrong.
I found this by inspection and could not find a suitable testcase for it
since (1) we don't handle MMX bitcasts in Peephole optimizer as to
generate COPYs that (2) could be expanded back to the appropriate x86
instruction in ExpandPostRA.
Switch to use the appropriate instructions: MMX_MOVD64from64rr and
MMX_MOVD64to64rr here.
llvm-svn: 242191
|
| |
|
|
|
|
|
|
|
|
|
| |
We referred to all declaration in definitions in our diagnostic messages
which is can be inaccurate. Instead, classify the declaration and emit
an appropriate diagnostic for the new declaration and an appropriate
note pointing to the old one.
This fixes PR24116.
llvm-svn: 242190
|
| |
|
|
| |
llvm-svn: 242189
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PowerPC uses itineraries to describe processor pipelines (and dispatch-group
restrictions for P7/P8 cores). Unfortunately, the target-independent
implementation of TII.getInstrLatency calls ItinData->getStageLatency, and that
looks for the largest cycle count in the pipeline for any given instruction.
This, however, yields the wrong answer for the PPC itineraries, because we
don't encode the full pipeline. Because the functional units are fully
pipelined, we only model the initial stages (there are no relevant hazards in
the later stages to model), and so the technique employed by getStageLatency
does not really work. Instead, we should take the maximum output operand
latency, and that's what PPCInstrInfo::getInstrLatency now does.
This caused some test-case churn, including two unfortunate side effects.
First, the new arrangement of copies we get from function parameters now
sometimes blocks VSX FMA mutation (a FIXME has been added to the code and the
test cases), and we have one significant test-suite regression:
SingleSource/Benchmarks/BenchmarkGame/spectral-norm
56.4185% +/- 18.9398%
In this benchmark we have a loop with a vectorized FP divide, and it with the
new scheduling both divides end up in the same dispatch group (which in this
case seems to cause a problem, although why is not exactly clear). The grouping
structure is hard to predict from the bottom of the loop, and there may not be
much we can do to fix this.
Very few other test-suite performance effects were really significant, but
almost all weakly favor this change. However, in light of the issues
highlighted above, I've left the old behavior available via a
command-line flag.
llvm-svn: 242188
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use the default install prefix (/usr/local) and use DESTDIR instead to
set a temporary install location for tarballing. This is the correct
way to package binary releases (otherwise the temporary install path
ends up in files in the binary release).
* Remove ``-disable-clang`` option. It did not work correctly
(tarballing assumed phase 3 was run) and when doing a release
we should always be doing a three-phased build and test.
Note: Technically we should only be using DESTDIR for the third phase
and use --prefix for the first and second phase because we run the built
clang from phase 1 and 2 (and in general an application's behaviour
may depend on the install prefix). However in the case of clang it
seems to not care what the install prefix was so to simplify the script
we use DESTDIR for all three stages.
llvm-svn: 242187
|
| |
|
|
|
|
|
| |
Convert logical operations on general-purpose registers to the correspon-
ding operations on predicate registers.
llvm-svn: 242186
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Before this change, personality directives were not emitted
if there was no invoke left in the function (of course until
recently this also meant that we couldn't know what
the personality actually was). This patch forces personality directives
to still be emitted, unless it is known to be a noop in the absence of
invokes, or the user explicitly specified `nounwind` (and not
`uwtable`) on the function.
Reviewers: majnemer, rnk
Subscribers: rnk, llvm-commits
Differential Revision: http://reviews.llvm.org/D10884
llvm-svn: 242185
|
| |
|
|
|
|
| |
decompression method.
llvm-svn: 242184
|
| |
|
|
|
|
|
|
| |
remote target.
http://reviews.llvm.org/D11163
llvm-svn: 242183
|
| |
|
|
|
|
| |
http://reviews.llvm.org/D11152
llvm-svn: 242182
|
| |
|
|
|
|
| |
For now it's only x86_64-linux-gnu.
llvm-svn: 242181
|
| |
|
|
|
|
| |
multiple module files.
llvm-svn: 242180
|
| |
|
|
|
|
| |
where the same key will be looked up in multiple tables.
llvm-svn: 242179
|
| |
|
|
|
|
|
| |
We might not want to upgrade config.guess to the current
version due to the license change from GPL2 to GPL3.
llvm-svn: 242178
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This can be done only with moves which theoretically
will optimize better later.
Although this transform increases the instruction count,
it should be code size / cycle count neutral in the worst
VALU case. It also seems to slightly improve a couple
of testcases due to other DAG combines this exposes.
This is probably slightly worse for the SALU case, so
it might be better to handle this during moveToVALU,
although then you lose some simplifications like
the load width reducing in the simple testcase.
llvm-svn: 242177
|
| |
|
|
|
|
|
|
|
|
| |
Rather than making -fexceptions a core option that enables C++ EH in
clang-cl, users can use the '-Xclang -fexceptions -Xclang
-fcxx-exceptions' flag set. We weren't going to expose -fexceptions in
clang-cl in the long run, so this way we don't add and then remove a
flag.
llvm-svn: 242176
|