| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Patch by Job Noorman!
llvm-svn: 185364
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When phis get lowered, destination copies are inserted using an iterator that is
determined once for all phis in the block, which BuildMI interprets as a request
to insert an instruction directly before the iterator. In the case of a cyclic
phi, source copies may also be inserted directly before this iterator, which can
cause source copies to be inserted before destination copies. The fix is to keep
an iterator to the last phi and then advance it while lowering each phi in order
to insert destination copies directly after the phis.
llvm-svn: 185363
|
| |
|
|
|
|
| |
Patch by Job Noorman!
llvm-svn: 185362
|
| |
|
|
|
|
|
|
|
|
| |
Although you can't generate this from C on PPC64, if you have a loop using a
64-bit counter on PPC32 then you can't form a CTR-based loop for it. This had
been cauing the PPCCTRLoops pass to assert.
Thanks to Joerg Sonnenberger for providing a test case!
llvm-svn: 185361
|
| |
|
|
|
|
|
|
|
|
|
|
| |
According to the AArch64 ELF specification (4.6.8), it's the
assembler's responsibility to make sure the shift amount is correct in
relocated MOVZ/MOVK instructions.
This wasn't being obeyed by either the MCJIT CodeGen or RuntimeDyldELF
(which happened to work out well for JIT tests). This commit should
make us compliant in this area.
llvm-svn: 185360
|
| |
|
|
|
|
|
|
|
| |
(2) Rename llvm-cov test inputs so the string "llvm-cov" doesn't get
substituted by lit within the input filenames on the RUN line.
(3) XFAIL llvm-cov.test because it asserts:
include/llvm/ADT/SmallVector.h:140: reference llvm::SmallVectorTemplateCommon<llvm::GCOVBlock *, void>::operator[](unsigned int) [T = llvm::GCOVBlock *]: Assertion `begin() + idx < end()' failed.
llvm-svn: 185358
|
| |
|
|
| |
llvm-svn: 185357
|
| |
|
|
|
|
|
|
|
| |
Turns out I'd misread the architecture reference manual and thought
that was a load/store-store barrier, when it's not.
Thanks for pointing it out Eli!
llvm-svn: 185356
|
| |
|
|
|
|
| |
No functionality change. Remove handling for the null case.
llvm-svn: 185354
|
| |
|
|
|
|
|
|
|
|
|
| |
A @got reference must always result in a relocation, so that
the linker has a chance to set up the GOT entry, even if the
symbol happens to be local.
Add a PPCELFObjectWriter::ExplicitRelSym routine that enforces
a relocation to be emitted for GOT references.
llvm-svn: 185353
|
| |
|
|
| |
llvm-svn: 185352
|
| |
|
|
|
|
| |
This adds the "wait" instruction and its extended mnemonics.
llvm-svn: 185350
|
| |
|
|
|
|
|
| |
This adds support for the "eieio" instruction to
the asm parser.
llvm-svn: 185349
|
| |
|
|
|
|
| |
in c++ mode instead of c mode.
llvm-svn: 185348
|
| |
|
|
|
|
|
|
|
|
| |
The test case had a couple of FIXMEs where the instruction is in
fact already supported by the back-end. In some other case, while
the generic form of the instruction is not yet supported, a
specialized form is. This adds tests for those already supported
instructions / instruction forms.
llvm-svn: 185347
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This lead to weird formatting.
Before:
DoSomethingWithVector({ {} /* No data */ }, {
{ 1, 2 }
});
After:
DoSomethingWithVector({ {} /* No data */ }, { { 1, 2 } });
llvm-svn: 185346
|
| |
|
|
| |
llvm-svn: 185345
|
| |
|
|
|
|
|
| |
This adds support for the "sync $L" instruction with operand,
and provides aliases for "lwsync" and "ptesync".
llvm-svn: 185344
|
| |
|
|
| |
llvm-svn: 185343
|
| |
|
|
| |
llvm-svn: 185342
|
| |
|
|
| |
llvm-svn: 185340
|
| |
|
|
|
|
|
|
|
|
|
| |
I believe the full "dmb ish" barrier is not required to guarantee release
semantics for atomic operations. The weaker "dmb ishst" prevents previous
operations being reordered with a store executed afterwards, which is enough.
A key point to note (fortunately already correct) is that this barrier alone is
*insufficient* for sequential consistency, no matter how liberally placed.
llvm-svn: 185339
|
| |
|
|
| |
llvm-svn: 185338
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Add penalty when an excessively long line in a block comment can not be
broken on a leading whitespace. Lack of this addition can lead to severe column
width violations when they can be easily avoided.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1071
llvm-svn: 185337
|
| |
|
|
|
|
|
| |
Since we were explicitly not calling AsmPrinter::doInitialization,
any module-scope inline asm was not being printed.
llvm-svn: 185336
|
| |
|
|
| |
llvm-svn: 185335
|
| |
|
|
|
|
|
|
| |
We are using virtual registers throughout now, but we still need
to keep a few physical registers per class around to keep the
infrastructure happy.
llvm-svn: 185334
|
| |
|
|
| |
llvm-svn: 185333
|
| |
|
|
|
|
| |
some typos
llvm-svn: 185332
|
| |
|
|
|
|
|
|
| |
Fix a case where we were incorrectly sign-extending a value when we should have been zero-extending the value.
Also change some SIGN_EXTEND to ANY_EXTEND because we really dont care and may have more opportunity to fold subexpressions
llvm-svn: 185331
|
| |
|
|
| |
llvm-svn: 185330
|
| |
|
|
| |
llvm-svn: 185329
|
| |
|
|
|
|
| |
value
llvm-svn: 185328
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not all bad, but people are often surprised by it.
Before:
namespace {
int SomeVariable = 0; // comment
} // namespace
After:
namespace {
int SomeVariable = 0; // comment
} // namespace
llvm-svn: 185327
|
| |
|
|
| |
llvm-svn: 185326
|
| |
|
|
|
|
| |
Patch by Jesse Ruderman<jruderman@gmail.com>
llvm-svn: 185325
|
| |
|
|
| |
llvm-svn: 185324
|
| |
|
|
|
|
|
|
|
| |
properly on cygwin.
Cygwin does not accept the form /CYGDRIVE/X/PATH/TO/FILE against /cygdrive/X/PATH/TO/FILE.
"cygdrive" must be lower-cased.
llvm-svn: 185323
|
| |
|
|
|
|
|
| |
can be removed.
FIXME: Could we use llvm::sys::Path here?
llvm-svn: 185322
|
| |
|
|
|
|
|
|
|
|
|
| |
Before (for styles where the pointer binds to the type):
template <class... Ts> void Foo(Ts... ts) {}
template <class... Ts> void Foo(Ts* ... ts) {}
After:
template <class... Ts> void Foo(Ts... ts) {}
template <class... Ts> void Foo(Ts*... ts) {}
llvm-svn: 185321
|
| |
|
|
|
|
|
|
|
|
| |
Before: void f(int */* unused */) {}
After: void f(int * /* unused */) {}
The previous version seems to be valid C++ code but confuses many syntax
highlighters.
llvm-svn: 185320
|
| |
|
|
|
|
|
|
|
|
| |
Before:
DoSomethingWithVector({
} /* No data */);
After:
DoSomethingWithVector({} /* No data */);
llvm-svn: 185319
|
| |
|
|
| |
llvm-svn: 185318
|
| |
|
|
|
|
| |
PTRACE_SETREGSET & PTRACE_GETREGSET may be missing from linux headers.
llvm-svn: 185317
|
| |
|
|
| |
llvm-svn: 185316
|
| |
|
|
| |
llvm-svn: 185315
|
| |
|
|
| |
llvm-svn: 185314
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The build system is currently miss-identifying GNU/kFreeBSD as FreeBSD.
This kind of simplification is sometimes useful, but in general it's not correct.
As GNU/kFreeBSD is an hybrid system, for kernel-related issues we want to match the
build definitions used for FreeBSD, whereas for userland-related issues we want to
match the definitions used for other systems with Glibc.
The current modification adjusts the build system so that they can be distinguished,
and explicitly adds GNU/kFreeBSD to the build checks in which it belongs.
Fixes bug #16446.
Patch by Robert Millan in the context of Debian.
llvm-svn: 185313
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The build system is currently miss-identifying GNU/kFreeBSD as FreeBSD.
This kind of simplification is sometimes useful, but in general it's not correct.
As GNU/kFreeBSD is an hybrid system, for kernel-related issues we want to match the
build definitions used for FreeBSD, whereas for userland-related issues we want to
match the definitions used for other systems with Glibc.
The current modification adjusts the build system so that they can be distinguished,
and explicitly adds GNU/kFreeBSD to the build checks in which it belongs.
Fixes bug #16445.
Patch by Robert Millan in the context of Debian.
llvm-svn: 185312
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This kind of simplification is sometimes useful, but in general it's not correct.
As GNU/kFreeBSD is an hybrid system, for kernel-related issues we want to match the
build definitions used for FreeBSD, whereas for userland-related issues we want to
match the definitions used for other systems with Glibc.
The current modification adjusts the build system so that they can be distinguished,
and explicitly adds GNU/kFreeBSD to the build checks in which it belongs.
Fixes bug #16444.
Patch by Robert Millan in the context of Debian.
llvm-svn: 185311
|