| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
These ADJCALLSTACK markers don't generate code, but they keep dynamic
alloca code that calls chkstk out of the prologue.
This slightly pessimizes inalloca calls by preventing some register copy
coalescing, but I can live with that.
Reviewers: qcolombet
Subscribers: hans, llvm-commits
Differential Revision: http://reviews.llvm.org/D15200
llvm-svn: 254645
 | 
| | 
| 
| 
| 
| 
|  | 
Remove blank spaces at the end of comments
llvm-svn: 254630
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: http://reviews.llvm.org/D14996
llvm-svn: 254629
 | 
| | 
| 
| 
| 
| 
|  | 
The indicies are one-based, not zero-based, per the spec.
llvm-svn: 254626
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
Fix import from module with appending var, which cannot be imported. The
first fix is to remove an overly-aggressive error check.
The second fix is to deal with restructuring introduced to the module
linker yesterday in r254418 (actually, this fix was included already
in r254559, just added some additional cleanup).
Test by Mehdi Amini.
Reviewers: joker.eph, rafael
Subscribers: joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D15156
llvm-svn: 254624
 | 
| | 
| 
| 
|  | 
llvm-svn: 254623
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
In the case of a conditional branch without a preceding cmp we used to emit
a "and; cmp; b.eq/b.ne" sequence, use tbz/tbnz instead.
Differential Revision: http://reviews.llvm.org/D15122
llvm-svn: 254621
 | 
| | 
| 
| 
|  | 
llvm-svn: 254617
 | 
| | 
| 
| 
| 
| 
|  | 
than doing it separately.  This also ensures the integrated assembler path matches the assembly parser path.
llvm-svn: 254616
 | 
| | 
| 
| 
| 
| 
|  | 
We now just return values and let ValueMap handle the map.
llvm-svn: 254615
 | 
| | 
| 
| 
|  | 
llvm-svn: 254613
 | 
| | 
| 
| 
|  | 
llvm-svn: 254610
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Currently "<type> ptr <reg name>" treated as <reg name> in MS inline asm, ignoring the "<type> ptr" completely and possibly ignoring the intention of the user.
Fixed llvm to produce an error when encountering "<type> ptr <reg name>" operands.
For example: andpd xmm1,xmmword ptr xmm1 --> andpd xmm1, xmm1 
though andpd has 2 possible matching formats - andpd xmm, xmm/m128
Patch by: ziv.izhar@intel.com
Differential Revision: http://reviews.llvm.org/D14607
llvm-svn: 254607
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
According to x86 spec, fcomip and fucomip should be supported for Intel syntax.
Differential Revision: http://reviews.llvm.org/D15104
llvm-svn: 254595
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
destructor.
It is not enough to simply make the destructor virtual since there is a g++ 4.7
issue (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613) that throws the
error "looser throw specifier for ... overridding ~SCEVPredicate() noexcept".
llvm-svn: 254592
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary: This is done only when targeting HSA.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D13807
llvm-svn: 254587
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This works mostly fine but breaks some stage 1 builders when compiling
compiler-rt on i386. Revert for further investigation as I can't see an
obvious cause/fix.
This reverts commit r254577.
llvm-svn: 254586
 | 
| | 
| 
| 
| 
|  | 
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 254585
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
the Worklist (NFC)
This precludes some more functional changes to perform bulk imports.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 254583
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
accurately the actual use.
Thanks Sean Silva for the suggestion.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 254582
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
There is no real reason the index has to have the concept of an
exporting Module. We should be able to have one single unique
instance of the Index, and it should be read-only after creation
for the whole ThinLTO processing.
The linker plugin should be able to process multiple modules (in
parallel or in sequence) with the same index.
The only reason the ExportingModule was present seems to be to
implement hasExportedFunctions() that is used by the Module linker
to decide what to do with the current Module.
For now I replaced it with a query to the map of Modules path to
see if this module was declared in the Index and consider that if
it is the case then it is probably exporting function.
On the long term the Linker interface needs to evolve and this
call should not be needed anymore.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 254581
 | 
| | 
| 
| 
| 
| 
|  | 
not enough for SPARCv7.
llvm-svn: 254580
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The new algorithm remembers the uses encountered while walking backwards
until a matching def is found. Contrary to the previous version this:
- Works without LiveIntervals being available
- Allows to increase the precision to subregisters/lanemasks
  (not used for now)
The changes in the AMDGPU tests are necessary because the R600 scheduler
is not stable with respect to the order of nodes in the ready queues.
Differential Revision: http://reviews.llvm.org/D9068
llvm-svn: 254577
 | 
| | 
| 
| 
|  | 
llvm-svn: 254575
 | 
| | 
| 
| 
| 
| 
| 
|  | 
The CreatedADWARFSection flag was added in r232842, but isn't cleared
properly when resetting the streamer's state. Fix that.
llvm-svn: 254571
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: http://reviews.llvm.org/D15167
llvm-svn: 254570
 | 
| | 
| 
| 
|  | 
llvm-svn: 254567
 | 
| | 
| 
| 
|  | 
llvm-svn: 254565
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
- Add extenders when necessary.
- Handle some basic relocations.
This should fix the failure in tools/clang/test/CodeGenCXX/crash.cpp
llvm-svn: 254564
 | 
| | 
| 
| 
| 
| 
|  | 
No functionality change is intended.
llvm-svn: 254562
 | 
| | 
| 
| 
|  | 
llvm-svn: 254560
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This replaces DoNotLinkFromSource with ValuesToLink. It also moves the
computation of ValuesToLink earlier.
It is a bit simpler and an important step in slitting the linker into an
ir mover and a linker proper.
The test change is because we now avoid creating dead declarations.
llvm-svn: 254559
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: http://reviews.llvm.org/D15098
llvm-svn: 254558
 | 
| | 
| 
| 
|  | 
llvm-svn: 254557
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Having to import an alias as declaration is not thinlto specific.
The test difference are because when we already have a decl and we are
not importing it, we just leave the decl alone.
llvm-svn: 254556
 | 
| | 
| 
| 
|  | 
llvm-svn: 254549
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This call should in fact be made by RegScavenger::enterBasicBlock()
called below. The first call does nothing except for triggering UB,
indicated by UBSan (passing nullptr to memset()).
llvm-svn: 254548
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
std::hex is not used anywhere in LLVM code base except for this place,
and it has a known undefined behavior (at least in libstdc++ 4.9.3):
https://llvm.org/bugs/show_bug.cgi?id=18156, which fires in UBSan
bootstrap of LLVM.
llvm-svn: 254547
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This was an omission when handling COFF style comdats with local keys.
Should fix the sanitizer-windows bot.
llvm-svn: 254543
 | 
| | 
| 
| 
| 
| 
|  | 
They are independent.
llvm-svn: 254541
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: http://reviews.llvm.org/D14508
llvm-svn: 254540
 | 
| | 
| 
| 
|  | 
llvm-svn: 254539
 | 
| | 
| 
| 
| 
| 
| 
|  | 
We were failing to copy the fact that the GV is weak and in the case of
an alias, producing invalid IR.
llvm-svn: 254538
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
AggressiveAntiDepBreaker was renaming registers specified by the user
for inline assembly. While this will work for compiler-specified
registers, it won't work for user-specified registers, and at the time
this runs, I don't currently see a way to distinguish them.
llvm-svn: 254532
 | 
| | 
| 
| 
| 
| 
|  | 
Remove whitespace from blank lines. NFC
llvm-svn: 254531
 | 
| | 
| 
| 
| 
| 
|  | 
Didn't break any tests, but did unnecessary extra work.
llvm-svn: 254529
 | 
| | 
| 
| 
|  | 
llvm-svn: 254527
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
vector.resize() is significantly slower than memset in many STLs
and the cost of initializing these vectors is significant on targets
with many registers. Since we don't need the overhead of a vector,
use a simple unique_ptr instead.
llvm-svn: 254526
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
discard
Summary: This changes overflow handling during instrumentation profile merge. Rathar than throwing away records that would result in counter overflow, merged counts are instead clamped to the maximum representable value. A warning about counter overflow is still surfaced to the user as before.
Reviewers: dnovillo, davidxl, silvas
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14893
llvm-svn: 254525
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
The ARM ARM is clear that 128-bit loads are only guaranteed to have been atomic
if there has been a corresponding successful stxp. It's less clear for AArch32, so
I'm leaving that alone for now.
llvm-svn: 254524
 |