| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
One-register lists are legal on LDM/STM instructions, but we should not print the PUSH/POP aliases when they appear. This fixes round tripping on this instruction.
llvm-svn: 143557
|
| |
|
|
|
|
| |
Thanks to Nick for spotting this!
llvm-svn: 143556
|
| |
|
|
|
|
| |
alias, not to LDM/STM instructions. Revert r143552.
llvm-svn: 143553
|
| |
|
|
|
|
| |
Alternate encodings are used in that case.
llvm-svn: 143552
|
| |
|
|
| |
llvm-svn: 143549
|
| |
|
|
| |
llvm-svn: 143547
|
| |
|
|
|
|
|
|
| |
We've been hitting asserts in this code due to the many supported
combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This
second rewrite of the code attempts to deal with these cases systematically.
llvm-svn: 143546
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the mailing list. Suggestions for other statistics to collect would be
awesome. =]
Currently these are implemented as a separate pass guarded by a separate
flag. I'm not thrilled by that, but I wanted to be able to collect the
statistics for the old code placement as well as the new in order to
have a point of comparison. I'm planning on folding them into the single
pass if / when there is only one pass of interest.
llvm-svn: 143537
|
| |
|
|
| |
llvm-svn: 143536
|
| |
|
|
|
|
| |
silence -Wparentheses.
llvm-svn: 143534
|
| |
|
|
| |
llvm-svn: 143529
|
| |
|
|
|
|
| |
links functions marked with specific linkage (internal, private, linker_private, linker_private_weak, linker_private_weak_def_auto, linkonce, linkonce_odr, and available_externally) if they have uses in the destination module. Instead of automatically linking, these functions are placed onto a worklist to be processed in the final stage of linking. We iterate over the list and if any functions on the list have uses in the destination module, we link them in and repeat the process until no changes in the state (uses) has changed. This means that any functions in the LazilyLink worklist that have a use in the destination module will be linked in and none that don't.
llvm-svn: 143524
|
| |
|
|
| |
llvm-svn: 143523
|
| |
|
|
|
|
| |
Narrowest possible fix for PR11279.
llvm-svn: 143522
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it is separating the directory part from the basename of the FileName. Noticed
that this:
.file 1 "dir/foo"
when assembled got the two parts switched. Using the Mac OS X dwarfdump tool
it can be seen easily:
% dwarfdump -a a.out
include_directories[ 1] = 'foo'
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 1 0x00000000 0x00000000 dir
...
Which should be:
...
include_directories[ 1] = 'dir'
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 1 0x00000000 0x00000000 foo
llvm-svn: 143521
|
| |
|
|
|
|
| |
For example, labels from Objective-C sources.
llvm-svn: 143511
|
| |
|
|
| |
llvm-svn: 143510
|
| |
|
|
|
|
|
|
|
|
|
|
| |
-g flag. In this part we generate the .file for the source being assembled and
the .loc's for the assembled instructions.
The next part will be to generate the dwarf Compile Unit DIE and a dwarf
subprogram DIE for each non-temporary label.
Once the next part is done test cases will be added. rdar://9275556
llvm-svn: 143509
|
| |
|
|
| |
llvm-svn: 143507
|
| |
|
|
| |
llvm-svn: 143502
|
| |
|
|
| |
llvm-svn: 143501
|
| |
|
|
|
|
| |
constant splat value. Fixes PR11289.
llvm-svn: 143498
|
| |
|
|
|
|
| |
They don't impact the MCJIT rtdyld, so just mask them off for now.
llvm-svn: 143472
|
| |
|
|
|
|
| |
This can happen if the address + addend is less than the start of the cp / dp.
llvm-svn: 143459
|
| |
|
|
| |
llvm-svn: 143452
|
| |
|
|
|
|
| |
with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275.
llvm-svn: 143437
|
| |
|
|
| |
llvm-svn: 143413
|
| |
|
|
|
|
| |
No test case, spotted by inspection.
llvm-svn: 143407
|
| |
|
|
|
|
| |
here. PR11268.
llvm-svn: 143406
|
| |
|
|
|
|
| |
Patch by Kostya Serebryany.
llvm-svn: 143405
|
| |
|
|
| |
llvm-svn: 143369
|
| |
|
|
|
|
| |
before the op legalizer and that the used type is legal.
llvm-svn: 143358
|
| |
|
|
|
|
|
| |
The _fixed variants have a writeback operand, but not a stride operand.
Split the conditional flag to distinguish the cases.
llvm-svn: 143356
|
| |
|
|
| |
llvm-svn: 143351
|
| |
|
|
| |
llvm-svn: 143331
|
| |
|
|
|
|
| |
-enable-dwarf-directory.
llvm-svn: 143326
|
| |
|
|
|
|
| |
add AVX2 feature flag.
llvm-svn: 143319
|
| |
|
|
|
|
|
|
|
|
|
|
| |
with the given predicate, it matches any condition and returns the
predicate - d'oh! Original commit message:
The expression icmp eq (select (icmp eq x, 0), 1, x), 0 folds to false.
Spotted by my super-optimizer in 186.crafty and 450.soplex. We really
need a proper infrastructure for handling generalizations of this kind
of thing (which occur a lot), however this case is so simple that I decided
to go ahead and implement it directly.
llvm-svn: 143318
|
| |
|
|
| |
llvm-svn: 143316
|
| |
|
|
|
|
| |
and zero out the bits where zeros should've been shifted in.
llvm-svn: 143315
|
| |
|
|
|
|
|
|
|
| |
On x86: (shl V, 1) -> add V,V
Hardware support for vector-shift is sparse and in many cases we scalarize the
result. Additionally, on sandybridge padd is faster than shl.
llvm-svn: 143311
|
| |
|
|
| |
llvm-svn: 143308
|
| |
|
|
|
|
|
| |
If all of the inputs are zero/any_extended, create a new simple BV
which can be further optimized by other BV optimizations.
llvm-svn: 143297
|
| |
|
|
|
|
| |
Should fix assertion failures on ppc buildbots.
llvm-svn: 143290
|
| |
|
|
|
|
|
|
| |
for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable.
Fixes PR11264.
llvm-svn: 143289
|
| |
|
|
| |
llvm-svn: 143265
|
| |
|
|
| |
llvm-svn: 143262
|
| |
|
|
| |
llvm-svn: 143237
|
| |
|
|
|
|
|
|
|
|
|
| |
When '~imm' is encodable as a t2_so_imm but plain 'imm' is not. For example,
mov r2, #-3
becomes
mvn r2, #2
rdar://10349224
llvm-svn: 143235
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 143220
|