Commit Graph

160695 Commits

Author SHA1 Message Date
Rafael Espindola cdd2c0044d Support cross linking to arm on ubuntu.
With this patch we correctly determine that ubuntu's ARM tree is not biarch
and use "lib" istead of "lib32".

Without this patch the search inside the arm tree for the crt files was failing
and we would end up trying to use the i686 ones in lib32.

llvm-svn: 193528
2013-10-28 18:52:30 +00:00
Ahmed Bougacha a70ecdc3ac TableGen: remove unused variable.
llvm-svn: 193527
2013-10-28 18:19:04 +00:00
Ahmed Bougacha 141075110c TableGen: Refactor DAG patterns to enable parsing one pattern at a time.
llvm-svn: 193526
2013-10-28 18:07:21 +00:00
Ahmed Bougacha bd2140018b TableGen: Refactor AsmWriterEmitter to keep AsmWriterInsts.
These used to be referenced by the CGI->AWI map (in AsmWriterEmitter), but
stored in a vector local to EmitPrintInstruction. Move the vector to
AsmWriterEmitter too.

llvm-svn: 193525
2013-10-28 18:07:17 +00:00
Logan Chien 8cbb80d159 [arm] Implement eabi_attribute, cpu, and fpu directives.
This commit allows the ARM integrated assembler to parse
and assemble the code with .eabi_attribute, .cpu, and
.fpu directives.

To implement the feature, this commit moves the code from
AttrEmitter to ARMTargetStreamers, and several new test
cases related to cortex-m4, cortex-r5, and cortex-a15 are
added.

Besides, this commit also change the Subtarget->isFPOnlySP()
to Subtarget->hasD16() to match the usage of .fpu directive.

This commit changes the test cases:

* Several .eabi_attribute directives in
  2010-09-29-mc-asm-header-test.ll are removed because the .fpu
  directive already cover the functionality.

* In the Cortex-A15 test case, the value for
  Tag_Advanced_SIMD_arch has be changed from 1 to 2,
  which is more precise.

llvm-svn: 193524
2013-10-28 17:51:12 +00:00
Nuno Lopes 8a24152048 simplify ConstantRange::getSetSize()
llvm-svn: 193523
2013-10-28 16:52:38 +00:00
Alexey Samsonov 590fe110f9 [Sanitizer] Revert r193501 and properly fix r193448
llvm-svn: 193522
2013-10-28 16:31:39 +00:00
Richard Sandiford 094e609716 [SystemZ] Set usaAA to true
useAA significantly improves the handling of vector code that has TBAA
information attached.  It also helps other cases, as shown by the testsuite
changes here.  The only real downside I've seen is that it interferes with
MergeConsecutiveStores.  The problem is that that optimization works top
down, starting at the first store in the chain, and looks for cases where
the chain result is only used by a single related store.  These related
stores don't alias, so useAA will have rewritten all the later stores to
use a different chain input (typically the same one as the first store).

I think the advantages outweigh the disadvantages though, so for now I've
just disabled alias analysis for the unaligned-01.ll test.

llvm-svn: 193521
2013-10-28 13:53:37 +00:00
Dmitry Vyukov cf7259c094 asan/msan: separate different report blocks with new lines
this makes the reports consistent with tsan, and much more readable.

llvm-svn: 193520
2013-10-28 13:05:32 +00:00
Dmitry Vyukov 33dd200ba9 tsan: start the background thread with signals blocked, otherwise it can steal users signals
llvm-svn: 193519
2013-10-28 12:29:32 +00:00
Richard Sandiford 981fdeb477 [DAGCombiner] Respect volatility when checking for aliases
Making useAA() default to true for SystemZ showed that the combiner alias
analysis wasn't handling volatile accesses.  This hit many of the SystemZ
tests, but I arbitrarily picked one for the purpose of this patch.

llvm-svn: 193518
2013-10-28 12:00:00 +00:00
Richard Sandiford 39c1ce4dc1 Keep TBAA info when rewriting SelectionDAG loads and stores
Most SelectionDAG code drops the TBAA info when creating a new form of a
load and store (e.g. during legalization, or when converting a plain
load to an extending one).  This patch tries to catch all cases where
the TBAA information can legitimately be carried over.

The patch adds alternative forms of getLoad() and getExtLoad() that take
a MachineMemOperand instead of individual fields.  (The corresponding
getTruncStore() already exists.)  The idea is to use the MachineMemOperand
forms when all fields are carried over (size, pointer info, isVolatile,
isNonTemporal, alignment and TBAA info).  If some adjustment is being
made, e.g. to narrow the load, then we still pass the individual fields
but also pass the TBAA info.

llvm-svn: 193517
2013-10-28 11:17:59 +00:00
Alp Toker d0cdc67caa lit: multiprocessing platform fix attempt
The error raised by Python varies by platform(!), so let's just catch any
exception and fall back.

Thanks to Sylvestre Ledru for noticing this on a Debian / Python 2.7 system
running code coverage.

llvm-svn: 193516
2013-10-28 10:26:13 +00:00
Alexander Potapenko bcaea0ee0b [libsanitizer] configure+make: install include/sanitizer into Clang
When building Clang with compiler-rt, copy the contents of compiler-rt/include/sanitizer into lib/clang/3.4/include/sanitizer

llvm-svn: 193515
2013-10-28 08:21:35 +00:00
Benjamin Kramer 6094f30da2 SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive.
We can't do this for the general case as saying a GEP with a negative index
doesn't have unsigned wrap isn't valid for negative indices.
  %gep = getelementptr inbounds i32* %p, i64 -1

But an inbounds GEP cannot run past the end of address space. So we check for
the very common case of a positive index and make GEPs derived from that NUW.
Together with Andy's recent non-unit stride work this lets us analyze loops
like

  void foo3(int *a, int *b) {
    for (; a < b; a++) {}
  }

PR12375, PR12376.

Differential Revision: http://llvm-reviews.chandlerc.com/D2033

llvm-svn: 193514
2013-10-28 07:30:06 +00:00
NAKAMURA Takumi a67c9c32aa StaticAnalyzer/Checkers/DynamicTypePropagation.cpp: Fix in comments. 80-col and an utf8 char.
llvm-svn: 193513
2013-10-28 04:14:33 +00:00
NAKAMURA Takumi 8a0464393f Prune utf8 chars in comments.
llvm-svn: 193512
2013-10-28 04:07:38 +00:00
NAKAMURA Takumi 0b865d445e Prune trailing linefeeds.
llvm-svn: 193511
2013-10-28 04:07:31 +00:00
NAKAMURA Takumi 4bb85f90fd Target/R600: Un-tab-ify.
llvm-svn: 193510
2013-10-28 04:07:23 +00:00
Reed Kotler 91ae9829a9 Make first substantial checkin of my port of ARM constant islands code to Mips.
Before I just ported the shell of the pass. I've tried to keep everything
nearly identical to the ARM version. I think it will be very easy to eventually
merge these two and create a new more general pass that other targets can
use. I have some improvements I would like to make to allow pools to 
be shared across functions and some other things. When I'm all done we
can think about making a more general pass. More to be ported but the
basic mechanism works now almost as good as gcc mips16.

llvm-svn: 193509
2013-10-27 21:57:36 +00:00
Alp Toker 31bd72fb22 Clarify the comment about BSD versions in r193465
llvm-svn: 193508
2013-10-27 20:49:19 +00:00
Alp Toker 7cce3f9404 Fix typo in test's REQUIRES line
llvm-svn: 193507
2013-10-27 19:03:12 +00:00
JF Bastien 1334d0aedf Define [U]LLONG_{MIN,MAX} for C++11, add tests.
Add tests for limits.h, not just [U]LLONG_{MIN,MAX}.

llvm-svn: 193506
2013-10-27 19:00:49 +00:00
Timur Iskhodzhanov 07e6eff8fa Fix the inconsistent order of parameters in the GetVBaseOffsetFromVBPtr definition and declaration
llvm-svn: 193505
2013-10-27 17:10:27 +00:00
Rafael Espindola 28d9b5ac1e Fix option typo.
llvm-svn: 193504
2013-10-27 14:46:16 +00:00
Rafael Espindola 59cc2f3fc2 Fix option spelling.
llvm-svn: 193503
2013-10-27 14:11:19 +00:00
Rafael Espindola fc2bacea3d Use -target instead of triple and use FileCheck.
llvm-svn: 193502
2013-10-27 13:59:51 +00:00
Timur Iskhodzhanov a1d048acb7 Work around ASan/Win breakage by r193448
llvm-svn: 193501
2013-10-27 13:37:23 +00:00
Benjamin Kramer 7ad4100f8b NVPTX: Remove unused globals.
llvm-svn: 193500
2013-10-27 11:31:46 +00:00
Benjamin Kramer 602bb4ad86 Hexagon: Remove global state.
llvm-svn: 193499
2013-10-27 11:16:09 +00:00
NAKAMURA Takumi 5bb014371e MCJIT-remote: __main should be resolved in child context.
- Mark tests as XFAIL:cygming in test/ExecutionEngine/MCJIT/remote.
    Rather to suppress them, I'd like to leave them running as XFAIL.
  - Revert r193472. RecordMemoryManager no longer resolves __main on cygming.

There are a couple of issues.

  - X86 Codegen emits "call __main" in @main for targeting cygming.
    It is useless in JIT. FYI, tests are passing when emitting __main is disabled.
  - Current remote JIT does not resolve any symbols in child context.

FIXME: __main should be disabled, or remote JIT should resolve __main.
llvm-svn: 193498
2013-10-27 10:22:52 +00:00
Elena Demikhovsky 199c823555 AVX-512: PMIN/PMAX intrinsics and patterns
Patch by Cameron McInally <cameron.mcinally@nyu.edu>

llvm-svn: 193497
2013-10-27 08:18:37 +00:00
Bill Wendling 6822ecb087 A small grammar-os fixed.
llvm-svn: 193496
2013-10-27 05:09:12 +00:00
Bill Wendling 9020b43404 Add trunk revision number on the online HTML docs.
Patch by Vassil Vassilev.
PR13435

llvm-svn: 193495
2013-10-27 05:00:50 +00:00
Bill Wendling e814a37a72 Update to current output.
PR14039

llvm-svn: 193494
2013-10-27 04:50:34 +00:00
Bill Wendling 29c7f168cb Fix Sphinx warning.
llvm-svn: 193493
2013-10-27 04:25:02 +00:00
Bill Wendling e9d5c4809d Update to specify that both metadata and label types aren't proper return types.
PR15447

llvm-svn: 193492
2013-10-27 04:19:29 +00:00
Bill Wendling 27f96dae10 Update the Python version. And Perl isn't used anymore.
PR17608

llvm-svn: 193491
2013-10-27 04:02:21 +00:00
Bill Wendling 7bf172cd45 Update link.
PR17608

llvm-svn: 193490
2013-10-27 03:57:10 +00:00
Shuxin Yang 2e1890e18b Revert r193251 : Use address-taken to disambiguate global variable and indirect memops.
llvm-svn: 193489
2013-10-27 03:08:44 +00:00
Jason Molenda 6a8658ad61 Fix the signed-ness of a few log printf directives in Process::RunThreadPlan.
llvm-svn: 193488
2013-10-27 02:32:23 +00:00
Chandler Carruth 9204c8319d Rather than rendering an argument to a std::string (which is primarily
intended for debugging and diagnostic output), just inspect the spelling
to check for specific prefixes in drectve section flags.

In addition to being significantly cheaper and not relying on
a debugging interface, this also avoids creating a temporary string and
binding it to StringRef variable. We then went on to access it after the
memory had been deallocated.

This bug too was caught by ASan. I love ASan so much. =]

llvm-svn: 193487
2013-10-27 00:10:43 +00:00
Chandler Carruth 50e5b3298c Use equals_lower() rather than creating a temporary string with lower().
More important than any performance concerns, the code was dropping the
temporary string on the floor after assigning it to a StringRef, and
then used the StringRef later. Caught by running the LLD tests under
ASan.

llvm-svn: 193486
2013-10-26 23:53:06 +00:00
Alp Toker 817d69cb29 Remove REQUIRES aarch64-registered-target from test
Registered targets don't matter for Sema tests, this passes fine.

llvm-svn: 193485
2013-10-26 21:42:32 +00:00
Rafael Espindola 64b3126fb4 Check IR and don't use temporary files.
llvm-svn: 193484
2013-10-26 20:55:05 +00:00
Shankar Easwaran fe0b80b321 [ELF][test] Remove default section names for known contentTypes.
llvm-svn: 193483
2013-10-26 19:38:42 +00:00
Shankar Easwaran 6775518254 [ELF] Fix RO/RW note sections.
llvm-svn: 193482
2013-10-26 19:38:39 +00:00
Shankar Easwaran b0022c00a3 [X86_64] Fix the atom that need to be exported.
llvm-svn: 193481
2013-10-26 19:38:37 +00:00
Shankar Easwaran 5afd25dcac [X86] Add more relocation types.
llvm-svn: 193480
2013-10-26 19:38:35 +00:00
Shankar Easwaran 8ad2dee6d6 [PECOFF] Add atoms to the PassManager file
llvm-svn: 193479
2013-10-26 19:38:33 +00:00