| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Restrict the creation of compact branches so that they meet the ISA encoding
requirements. Notably do not permit $zero to be used as a operand for compact
branches and ensure that some other branches fulfil the requirement that
rs != rt.
Fixup cases where $rs > $rt for bnec and beqc.
Reviewers: dsanders, vkalintiris
Differential Review: http://reviews.llvm.org/D20284
llvm-svn: 269893
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This change adds support for software floating point operations for Sparc targets.
This is the first in a set of patches to enable software floating point on Sparc. The next patch will enable the option to be used with Clang.
Differential Revision: http://reviews.llvm.org/D19265
llvm-svn: 269892
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
'covmapping' files.
Coverage mapping data is organized in a sequence of blocks, each of which is expected
to be aligned by 8 bytes. This feature is used when reading those blocks, see
VersionedCovMapFuncRecordReader::readFunctionRecords(). If a misaligned covearge
mapping data has more than one block, it causes llvm-cov to fail.
Differential Revision: http://reviews.llvm.org/D20285
llvm-svn: 269887
 | 
| | 
| 
| 
| 
| 
|  | 
immediate inputs.
llvm-svn: 269886
 | 
| | 
| 
| 
| 
| 
|  | 
bytes in the DAG isel table by removing type checks for the condition operand which is always a vector or scalar of i1 matching the the number of elements in the other operands.
llvm-svn: 269885
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
CodeGen support
Differential Revision: http://reviews.llvm.org/D15418
llvm-svn: 269883
 | 
| | 
| 
| 
| 
| 
|  | 
report_fatal_error.
llvm-svn: 269881
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* Reworks the CVSymbolTypes.def to work similarly to TypeRecords.def.
* Moves some enums from SymbolRecords.h to CodeView.h to maintain
  consistency with how we do type records.
* Generalize a few simple things like the record prefix
* Define the leaf enum and the kind enum similar to how we do with tyep
  records.
Differential Revision: http://reviews.llvm.org/D20342
Reviewed By: amccarth, rnk
llvm-svn: 269867
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
structs"
This reverts commits r269845, r269846, and r269850 as they
introduce a crash in obj2yaml when trying to do a roundtrip.
llvm-svn: 269865
 | 
| | 
| 
| 
|  | 
llvm-svn: 269862
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
I don't yet fully understand the meaning of these data strcutures,
but at least it seems that their sizes and types are correct.
With this change, we can read publics streams till end.
Differential Revision: http://reviews.llvm.org/D20343
llvm-svn: 269861
 | 
| | 
| 
| 
|  | 
llvm-svn: 269859
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
We currently don't represent get_local and set_local explicitly; they
are just implied by virtual register use and def. This avoids a lot of
clutter, but it does complicate stackifying: get_locals read their
operands at their position in the stack evaluation order, rather than
at their parent instruction. This patch adds code to walk the stack to
determine the precise ordering, when needed.
llvm-svn: 269854
 | 
| | 
| 
| 
|  | 
llvm-svn: 269853
 | 
| | 
| 
| 
|  | 
llvm-svn: 269848
 | 
| | 
| 
| 
| 
| 
|  | 
Patch by JakeVanAdrighem. Thanks!
llvm-svn: 269847
 | 
| | 
| 
| 
| 
| 
|  | 
Apparently I mucked up the mappings here, which was causing some binary differences in round tripping.
llvm-svn: 269846
 | 
| | 
| 
| 
| 
| 
|  | 
This patch adds round trip support for MachO section structs.
llvm-svn: 269845
 | 
| | 
| 
| 
|  | 
llvm-svn: 269844
 | 
| | 
| 
| 
|  | 
llvm-svn: 269843
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
instead of having DwarfUnit query the debugger tuning options.
Follow-up commmit to r269827.
Thanks to Paul Robinson for pointing this out!
llvm-svn: 269840
 | 
| | 
| 
| 
|  | 
llvm-svn: 269839
 | 
| | 
| 
| 
| 
| 
|  | 
Seems to have broken the Windows ASan bot. Reverting while investigating.
llvm-svn: 269833
 | 
| | 
| 
| 
| 
| 
|  | 
It doesn't matter if the comparison is unsigned; the inc/dec is always signed.
llvm-svn: 269831
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This handles instructions where the defined register is also used, as in
"x = x + 1".
llvm-svn: 269830
 | 
| | 
| 
| 
|  | 
llvm-svn: 269829
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch moves the expansion of WIN_ALLOCA pseudo-instructions
into a separate pass that walks the CFG and lowers the instructions
based on a conservative estimate of the offset between the stack
pointer and the lowest accessed stack address.
The goal is to reduce binary size and run-time costs by removing
calls to _chkstk. While it doesn't fix all the code quality problems
with inalloca calls, it's an incremental improvement for PR27076.
Differential Revision: http://reviews.llvm.org/D20263
llvm-svn: 269828
 | 
| | 
| 
| 
| 
| 
| 
|  | 
As discovered in PR27758, GDB does not fully support the DWARF 4 format.
This patch ensures we always emit bitfields in the DWARF 2 when tuning for GDB.
llvm-svn: 269827
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
When processing inline asm that contains errors, make sure we can recover
gracefully by creating an UNDEF SDValue for the inline asm statement before
returning from SelectionDAGBuilder::visitInlineAsm. This is necessary for
consumers that don't exit on the first error that is emitted (e.g. clang)
and that would assert later on.
Fixes PR24071.
Patch by Diana Picus.
llvm-svn: 269811
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
structures""
This adds support for all the MachO *_command structures. The load_command payloads still are not represented, but that will come next.
llvm-svn: 269808
 | 
| | 
| 
| 
| 
| 
|  | 
The API is simpler. Suggested by David Blaikie!
llvm-svn: 269800
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This bug was introduced in r269728 and is the likely cause of many stage 2 ubsan bot failures.
I'll add a test in a follow-up commit assuming this fixes things properly.
llvm-svn: 269797
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Guards are expected to basically never fail.  Reflect this in the branch
probabilities in their lowered form.
llvm-svn: 269791
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
... for AddRec's in loops for which SCEV is unable to compute a max
tripcount.  This is the NUW variant of r269211 and fixes PR27691.
(Note: PR27691 is not a correct or stability bug, it was created to
track a pending task).
llvm-svn: 269790
 | 
| | 
| 
| 
| 
| 
|  | 
This reverts commit r269782 because it broke bots with -fpermissive.
llvm-svn: 269785
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
when the object is in an archive to use something like libx.a(foo.o) as part of
the error message.
Also changed llvm-objdump and llvm-size to be like llvm-nm and ignore non-object
files in archives and not produce any error message.
To do this Archive::Child::getAsBinary() was changed from ErrorOr<...> to
Expected<...> then that was threaded up to its users.
Converting this interface to Expected<> from ErrorOr<> does involve
touching a number of places. To contain the changes for now the use of
errorToErrorCode() is still used in one place yet to be fully converted.
Again there some were bugs in the existing code that did not deal with the
old ErrorOr<> return values.  So now with Expected<> since they must be
checked and the error handled, I added a TODO and a comments for those.
llvm-svn: 269784
 | 
| | 
| 
| 
| 
| 
|  | 
This adds support for all the MachO *_command structures. The load_command payloads still are not represented, but that will come next.
llvm-svn: 269782
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This just checks that we emit all type records once, and then after
merging the type stream with no other type streams, we still emit every
kind of type record.
We could test the dumper output more closely, but that would make the
test very brittle. Currently we're just getting coverage.
llvm-svn: 269778
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Since r207518 they are printed exactly like non-hidden stubs on x86 and
since r207517 on ARM.
This means we can use a single set for all stubs in those platforms.
llvm-svn: 269776
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
Add support to control where files for a distributed backend (the
individual index files and optional imports files) are created.
This is invoked with a new thinlto-prefix-replace option in the gold
plugin and llvm-lto. If specified, expects a string of the form
"oldprefix:newprefix", and instead of generating these files in the
same directory path as the corresponding bitcode file, will use a path
formed by replacing the bitcode file's path prefix matching oldprefix
with newprefix.
Also add a new replace_path_prefix helper to Path.h in libSupport.
Depends on D19636.
Reviewers: joker.eph
Subscribers: llvm-commits, joker.eph
Differential Revision: http://reviews.llvm.org/D19644
llvm-svn: 269771
 | 
| | 
| 
| 
|  | 
llvm-svn: 269768
 | 
| | 
| 
| 
|  | 
llvm-svn: 269767
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This is assertion is no longer necessary since we never record
constants in the live set anyway. (They are never recorded in 
the initial live set, and constant bases are removed near line 2119)
Differential Revision: http://reviews.llvm.org/D20293
llvm-svn: 269764
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The movw instruction is only available in ARM state for V6T2 and above.
The MOVi16 instruction has requirement HasV6T2 but the InstAlias
for mov rd, imm where the operand is imm0_65535_expr:$imm does not.
This means that movw can incorrectly be used in ARMv4 and ARMv5 by
writing mov rd, 0x1234. The simple fix is to the requirement HasV6T2
to the InstAlias. Tests added to not-armv4.s.
Patch by Peter Smith.
llvm-svn: 269761
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
target block are the same in getFallThroughMBB.
Differential Revision: http://reviews.llvm.org/D20288
llvm-svn: 269760
 | 
| | 
| 
| 
| 
| 
|  | 
Fixes PR27786.
llvm-svn: 269757
 | 
| | 
| 
| 
| 
| 
|  | 
It's no longer needed after r269750
llvm-svn: 269756
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: http://reviews.llvm.org/D15417
llvm-svn: 269755
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch adds the commandline option -mips-compact-branches={never,optimal,always),
which controls how LLVM generates compact branches for MIPS targets. By
default, the compact branch policy is 'optimal' where LLVM will (hopefully)
pick the optimal branch for any situation. The 'never' policy will disable
the generation of compact branches and 'always' will generate compact branches
wherever possible.
Reviewers: dsanders
Differential Review: http://reviews.llvm.org/D20167
llvm-svn: 269753
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
CMPGU* and CMPU* instructions
Differential Revision: http://reviews.llvm.org/D16182
llvm-svn: 269752
 |