| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 262191
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UniversalDriver was used as a dispatcher to each platform-specific driver.
It had its own Options.td file. It was not just too much to parse only a
few options (we only want to parse -core, -flavor or argv[0]),
but also interpreted arguments too early. For example, if you invoke lld as
"lld -flavor gnu ... -help", then you'd get the UniversalDriver's help
message instead of GnuDriver's. This patch eliminates the use of Options
from the dispatcher.
http://reviews.llvm.org/D17686
llvm-svn: 262190
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we import a module that has a complete array type and one that has an
incomplete array type, the declaration found by name lookup might be the one with
the incomplete type, possibly resulting in rejects-valid.
Now, the name lookup prefers decls with a complete array types. Also,
diagnose cases when the redecl chain has array bound, different from the merge
candidate.
Reviewed by Richard Smith.
llvm-svn: 262189
|
|
|
|
|
|
|
|
| |
for clang.
char AnalysisBase::ID should be declared as extern and defined in one module.
llvm-svn: 262188
|
|
|
|
| |
llvm-svn: 262187
|
|
|
|
|
|
|
|
| |
tweaks."
I'll rework soon.
llvm-svn: 262186
|
|
|
|
|
|
| |
char AnalysisBase::ID should be declared as extern and defined in one module.
llvm-svn: 262185
|
|
|
|
| |
llvm-svn: 262184
|
|
|
|
| |
llvm-svn: 262183
|
|
|
|
| |
llvm-svn: 262182
|
|
|
|
| |
llvm-svn: 262181
|
|
|
|
|
|
| |
Operand order seems to have changed, the new one is nicer.
llvm-svn: 262180
|
|
|
|
|
|
| |
More API churn, experimental target got sad.
llvm-svn: 262179
|
|
|
|
|
|
|
|
|
|
| |
Adds a number of constants, defined in the ARM EHABI spec, to the Clang
lib/Headers/unwind.h header. This is prerequisite for landing
http://reviews.llvm.org/D15781, as previously discussed there.
Patch by Timon Van Overveldt.
llvm-svn: 262178
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17685
llvm-svn: 262177
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17684
llvm-svn: 262176
|
|
|
|
|
|
|
| |
It is easier to handle section filler data separately rather than
merging with section names.
llvm-svn: 262175
|
|
|
|
| |
llvm-svn: 262174
|
|
|
|
| |
llvm-svn: 262173
|
|
|
|
| |
llvm-svn: 262172
|
|
|
|
|
|
|
|
|
|
|
| |
IIUC, range was an experiment to see how N3350 would work in LLD.
It turned out it didn't get traction, and it is basically duplicate
of iterator_range in ADT. We have only two occurrences of range,
and all of them are easily rewritten without it.
http://reviews.llvm.org/D17687
llvm-svn: 262171
|
|
|
|
| |
llvm-svn: 262170
|
|
|
|
| |
llvm-svn: 262169
|
|
|
|
| |
llvm-svn: 262168
|
|
|
|
| |
llvm-svn: 262167
|
|
|
|
| |
llvm-svn: 262166
|
|
|
|
| |
llvm-svn: 262165
|
|
|
|
| |
llvm-svn: 262164
|
|
|
|
|
|
| |
It was ELF specific.
llvm-svn: 262163
|
|
|
|
| |
llvm-svn: 262162
|
|
|
|
| |
llvm-svn: 262161
|
|
|
|
| |
llvm-svn: 262160
|
|
|
|
| |
llvm-svn: 262159
|
|
|
|
|
|
| |
I think it is clear by now that the new linker is viable.
llvm-svn: 262158
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17654
llvm-svn: 262157
|
|
|
|
|
|
|
|
|
| |
This reverts commit r262041, which caused asserts starting yesterday on the OS X testbot.
See details in:
https://llvm.org/bugs/show_bug.cgi?id=26758
llvm-svn: 262156
|
|
|
|
| |
llvm-svn: 262155
|
|
|
|
|
|
| |
Part of PR26753.
llvm-svn: 262154
|
|
|
|
|
|
|
|
|
|
|
|
| |
The maximum private allocation for the whole GPU is 4G,
so the maximum possible index for a single workitem is the
maximum size divided by the smallest granularity for a dispatch.
This increases the number of known zero high bits, which
enables more offset folding. The maximum private size per
workitem with this is 128M but may be smaller still.
llvm-svn: 262153
|
|
|
|
|
|
|
|
| |
InlineSpiller::rematerializeFor() never uses its parameter as an
iterator, so take it by reference instead. This removes an implicit
conversion from MachineBasicBlock::iterator to MachineInstr*.
llvm-svn: 262152
|
|
|
|
|
|
| |
These parameters aren't expected to be null, so take them by reference.
llvm-svn: 262151
|
|
|
|
|
|
|
|
| |
Change MachineInstr API to prefer MachineInstr& over MachineInstr*
whenever the parameter is expected to be non-null. Slowly inching
toward being able to fix PR26753.
llvm-svn: 262149
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the case where op = add, y = base_ptr, and x = offset, this
transform:
(op y, (op x, c1)) -> (op (op x, y), c1)
breaks the canonical form of add by putting the base pointer in the
second operand and the offset in the first.
This fix is important for the R600 target, because for some address
spaces the base pointer and the offset are stored in separate register
classes. The old pattern caused the ISel code for matching addressing
modes to put the base pointer and offset in the wrong register classes,
which required no-trivial code transformations to fix.
llvm-svn: 262148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
iOS on ARM64 doesn't unique RTTI.
Ref: clang's iOS64CXXABI::shouldRTTIBeUnique()
Due to this, pointer-equality will not necessarily work in this
architecture, across dylib boundaries.
dynamic_cast<>() will (as expected) still work, since Apple ships with
one prepared for this, but we can't rely on the type names being
pointer-equal.
I've limited the expensive strcmp check to the specific architecture
which needs it.
Example which triggers this bug:
lib.h:
struct X {
virtual ~X() {}
};
X *libCall();
lib.mm:
X *libCall() {
return new X;
}
prog.mm:
int main() {
X *px = libCall();
delete px;
}
Expected output: Nothing
Actual output:
<unknown>: runtime error: member call on address 0x00017001ef50 which does not point to an object of type 'X'
0x00017001ef50: note: object is of type 'X'
00 00 00 00 60 00 0f 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^~~~~~~~~~~~~~~~~~~~~~~
vptr for ‘X’
Reviewers: kubabrecka, samsonov, eugenis, rsmith
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D11502
llvm-svn: 262147
|
|
|
|
|
|
| |
Also update HashEndOfMBB to take MachineBasicBlock&.
llvm-svn: 262146
|
|
|
|
|
|
|
|
| |
Take parameters as MachineInstr& instead of MachineInstr* in
AntiDepBreaker API, since these are required to be non-null. No
functionality change intended. Looking toward PR26753.
llvm-svn: 262145
|
|
|
|
|
|
|
| |
This already assumes a valid MI, since it dereferences the MI in an
assertion before checking for null. At an explicit assert.
llvm-svn: 262144
|
|
|
|
| |
llvm-svn: 262143
|
|
|
|
|
|
|
|
|
| |
In all but one case, change the DFAPacketizer API to take MachineInstr&
instead of MachineInstr*. In DFAPacketizer::endPacket(), take
MachineBasicBlock::iterator. Besides cleaning up the API, this is in
search of PR26753.
llvm-svn: 262142
|
|
|
|
|
|
|
|
| |
Update APIs in MachineInstrBundle.h to take and return MachineInstr&
instead of MachineInstr* when the instruction cannot be null. Besides
being a nice cleanup, this is tacking toward a fix for PR26753.
llvm-svn: 262141
|