oota-llvm.git
10 years agomi-sched: Force bottom up scheduling for generic targets.
Andrew Trick [Wed, 4 Sep 2013 23:54:00 +0000 (23:54 +0000)]
mi-sched: Force bottom up scheduling for generic targets.

Fast register pressure tracking currently only takes effect during
bottom up scheduling. Forcing this is a bit faster and simpler for
targets that don't have many scheduling constraints and don't need
top-down scheduling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190014 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd names for mach-o permissions bits and use the symbol names in place of magic...
Nick Kledzik [Wed, 4 Sep 2013 23:53:44 +0000 (23:53 +0000)]
Add names for mach-o permissions bits and use the symbol names in place of magic numbers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190013 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMove default dwarf version enum into the llvm dwarf constants rather
Eric Christopher [Wed, 4 Sep 2013 23:38:29 +0000 (23:38 +0000)]
Move default dwarf version enum into the llvm dwarf constants rather
than the spec dwarf constants.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190011 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agofix typo in enum name
Nick Kledzik [Wed, 4 Sep 2013 23:27:21 +0000 (23:27 +0000)]
fix typo in enum name

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190009 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd missing header line.
Bill Wendling [Wed, 4 Sep 2013 22:35:41 +0000 (22:35 +0000)]
Add missing header line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190004 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse ArrayRef instead of explicit container.
Bill Wendling [Wed, 4 Sep 2013 22:35:29 +0000 (22:35 +0000)]
Use ArrayRef instead of explicit container.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190003 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove hack ensuring that darwin didn't produce dwarf > 3 for modules
Eric Christopher [Wed, 4 Sep 2013 22:21:24 +0000 (22:21 +0000)]
Remove hack ensuring that darwin didn't produce dwarf > 3 for modules
without a limiting factor.

Update all testcases accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190002 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Revert r189902 as the workaround shouldn't be necessary anymore."
Eric Christopher [Wed, 4 Sep 2013 21:36:52 +0000 (21:36 +0000)]
Revert "Revert r189902 as the workaround shouldn't be necessary anymore."

Needs testcase updates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190000 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert r189902 as the workaround shouldn't be necessary anymore.
Eric Christopher [Wed, 4 Sep 2013 21:26:56 +0000 (21:26 +0000)]
Revert r189902 as the workaround shouldn't be necessary anymore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189999 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoExpand and rewrite comment.
Eric Christopher [Wed, 4 Sep 2013 21:23:23 +0000 (21:23 +0000)]
Expand and rewrite comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189998 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agocomment typo
Andrew Trick [Wed, 4 Sep 2013 21:12:05 +0000 (21:12 +0000)]
comment typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189997 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove dead subtree limit code.
Andrew Trick [Wed, 4 Sep 2013 21:00:20 +0000 (21:00 +0000)]
Remove dead subtree limit code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189995 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago-view-misched-dags, better pruning.
Andrew Trick [Wed, 4 Sep 2013 21:00:18 +0000 (21:00 +0000)]
-view-misched-dags, better pruning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189994 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agomi-sched: DEBUG cleanup, call tracePick for unidirectional scheduling.
Andrew Trick [Wed, 4 Sep 2013 21:00:16 +0000 (21:00 +0000)]
mi-sched: DEBUG cleanup, call tracePick for unidirectional scheduling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189993 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago80 columns
Andrew Trick [Wed, 4 Sep 2013 21:00:13 +0000 (21:00 +0000)]
80 columns

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189992 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agomi-sched: Suppress register pressure tracking when the scheduling window is too small.
Andrew Trick [Wed, 4 Sep 2013 21:00:11 +0000 (21:00 +0000)]
mi-sched: Suppress register pressure tracking when the scheduling window is too small.

If the instruction window is < NumRegs/2, pressure tracking is not
likely to be effective. The scheduler has to process a very large
number of tiny blocks. We want this to be fast.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189991 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agomi-sched: Load clustering is a bit to expensive to enable unconditionally.
Andrew Trick [Wed, 4 Sep 2013 21:00:08 +0000 (21:00 +0000)]
mi-sched: Load clustering is a bit to expensive to enable unconditionally.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189990 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agomi-sched: Reuse an invalid HazardRecognizer to save compile time.
Andrew Trick [Wed, 4 Sep 2013 21:00:05 +0000 (21:00 +0000)]
mi-sched: Reuse an invalid HazardRecognizer to save compile time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189989 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agomi-sched: bypass heuristic checks when regpressure tracking is disabled.
Andrew Trick [Wed, 4 Sep 2013 21:00:02 +0000 (21:00 +0000)]
mi-sched: bypass heuristic checks when regpressure tracking is disabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189988 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdded -misched-regpressure option.
Andrew Trick [Wed, 4 Sep 2013 20:59:59 +0000 (20:59 +0000)]
Added -misched-regpressure option.

Register pressure tracking is half the complexity of the
scheduler. It's useful to be able to turn it off for compile time and
performance comparisons.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189987 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoChange swift/vldm test case to be less dependent on allocation order
Arnold Schwaighofer [Wed, 4 Sep 2013 20:51:06 +0000 (20:51 +0000)]
Change swift/vldm test case to be less dependent on allocation order

'Force' values in registers using the calling convention. Now, we only depend on
the calling convention and that the allocator performs copy coalescing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189985 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRename some variables to match the style guide.
Rafael Espindola [Wed, 4 Sep 2013 20:08:46 +0000 (20:08 +0000)]
Rename some variables to match the style guide.

I am about to patch this code, and this makes the diff far more readable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189982 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Use shared op optimization when checking cycle compatibility
Vincent Lejeune [Wed, 4 Sep 2013 19:53:54 +0000 (19:53 +0000)]
R600: Use shared op optimization when checking cycle compatibility

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189981 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Non vector only instruction can be scheduled on trans unit
Vincent Lejeune [Wed, 4 Sep 2013 19:53:46 +0000 (19:53 +0000)]
R600: Non vector only instruction can be scheduled on trans unit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189980 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Use SchedModel enum for is{Trans,Vector}Only functions
Vincent Lejeune [Wed, 4 Sep 2013 19:53:30 +0000 (19:53 +0000)]
R600: Use SchedModel enum for is{Trans,Vector}Only functions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189979 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Remove fmul.v4f32.ll test which is redundant with fmul.ll
Vincent Lejeune [Wed, 4 Sep 2013 19:53:22 +0000 (19:53 +0000)]
R600: Remove fmul.v4f32.ll test which is redundant with fmul.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189978 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUnify and clean up.
Eric Christopher [Wed, 4 Sep 2013 19:53:21 +0000 (19:53 +0000)]
Unify and clean up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189977 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMerge these 2 tests in a single file.
Rafael Espindola [Wed, 4 Sep 2013 19:19:32 +0000 (19:19 +0000)]
Merge these 2 tests in a single file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189975 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: Teach A15 SDOptimizer to properly handle D-reg by-lane.
Jim Grosbach [Wed, 4 Sep 2013 19:08:44 +0000 (19:08 +0000)]
ARM: Teach A15 SDOptimizer to properly handle D-reg by-lane.

These instructions, such as vmul.f32, require the second source operand to
be in D0-D15 rather than the full D0-D31. When optimizing, make sure to
account for that by constraining the register class of a replacement virtual
register to be compatible with the virtual register(s) it's replacing.

I've been unsuccessful in creating a non-fragile regression test. This issue
was detected by the LLVM nightly test suite running on an A15 (Bullet).

PR17093: http://llvm.org/bugs/show_bug.cgi?id=17093

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189972 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSmall simplification given that insert of an empty range is a nop.
Rafael Espindola [Wed, 4 Sep 2013 18:53:21 +0000 (18:53 +0000)]
Small simplification given that insert of an empty range is a nop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189971 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove 'param' label from comments. They aren't used properly here.
Bill Wendling [Wed, 4 Sep 2013 18:48:12 +0000 (18:48 +0000)]
Remove 'param' label from comments. They aren't used properly here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189970 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRefactor duplicated logic to a helper function.
Rafael Espindola [Wed, 4 Sep 2013 18:37:36 +0000 (18:37 +0000)]
Refactor duplicated logic to a helper function.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189969 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove dead code.
Rafael Espindola [Wed, 4 Sep 2013 18:16:02 +0000 (18:16 +0000)]
Remove dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189967 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMemoryBufer: add a test: check that a file with size that is a multiple of the
Dmitri Gribenko [Wed, 4 Sep 2013 18:02:13 +0000 (18:02 +0000)]
MemoryBufer: add a test: check that a file with size that is a multiple of the
page size can be null terminated correctly by MemoryBuffer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189965 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRename variables to match the style guide and clang-format.
Rafael Espindola [Wed, 4 Sep 2013 17:44:24 +0000 (17:44 +0000)]
Rename variables to match the style guide and clang-format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189962 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSwift: Only build vldm/vstm with q register aligned register lists
Arnold Schwaighofer [Wed, 4 Sep 2013 17:41:16 +0000 (17:41 +0000)]
Swift: Only build vldm/vstm with q register aligned register lists

Unaligned vldm/vstm need more uops and therefore are slower in general on swift.

radar://14522102

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189961 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix scheduling for vldm/vstm instructions that load/store more than 32 bytes on Corte...
Silviu Baranga [Wed, 4 Sep 2013 17:05:18 +0000 (17:05 +0000)]
Fix scheduling for vldm/vstm instructions that load/store more than 32 bytes on Cortex-A9. This also makes the existing code more compact.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189958 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Add r159136 back now that pr13124 has been fixed."
Rafael Espindola [Wed, 4 Sep 2013 16:09:01 +0000 (16:09 +0000)]
Revert "Add r159136 back now that pr13124 has been fixed."

This reverts commit r189886.

I found a corner case where this optimization is not valid:

Say we have a "linkonce_odr unnamed_addr" in two translation units:
* In TU 1 this optimization kicks in and makes it hidden.
* In TU 2 it gets const merged with a constant that is *not* unnamed_addr,
  resulting in a non unnamed_addr constant with default visibility.
* The static linker rules for combining visibility them produce a hidden
  symbol, which is incorrect from the point of view of the non unnamed_addr
  constant.

The one place we can do this is when we know that the symbol is not used from
another TU in the same shared object, i.e., during LTO. I will move it there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189954 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMove generic isPrint and columnWidth implementations to a separate header/source...
Alexander Kornienko [Wed, 4 Sep 2013 16:00:12 +0000 (16:00 +0000)]
Move generic isPrint and columnWidth implementations to a separate header/source to allow using both generic and system-dependent versions on win32.

Summary:
This is needed so we can use generic columnWidthUTF8 in clang-format on
win32 simultaneously with a separate system-dependent implementations of
isPrint/columnWidth in TextDiagnostic.cpp to avoid attempts to print Unicode
characters using narrow-character interfaces (which is not supported on Windows,
and we'll have to figure out how to handle this).

Reviewers: jordan_rose

Reviewed By: jordan_rose

CC: llvm-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1559

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189952 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoError on linking appending globals with different unnamed_addr.
Rafael Espindola [Wed, 4 Sep 2013 15:33:34 +0000 (15:33 +0000)]
Error on linking appending globals with different unnamed_addr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189950 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[Sparc] Fix an assertion failure while lowering fcmp on long double.
Venkatraman Govindaraju [Wed, 4 Sep 2013 15:15:20 +0000 (15:15 +0000)]
[Sparc] Fix an assertion failure while lowering fcmp on long double.
  This assertion is triggered because an integer constant is created with wrong
  type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189948 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix linking of unnamed_addr in functions.
Rafael Espindola [Wed, 4 Sep 2013 14:59:03 +0000 (14:59 +0000)]
Fix linking of unnamed_addr in functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189945 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRename in preparation for adding tests for function linking.
Rafael Espindola [Wed, 4 Sep 2013 14:40:49 +0000 (14:40 +0000)]
Rename in preparation for adding tests for function linking.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189944 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse CHECK-DAG instead of sort.
Rafael Espindola [Wed, 4 Sep 2013 14:35:48 +0000 (14:35 +0000)]
Use CHECK-DAG instead of sort.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189942 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSupport/Process: Add comments about PageSize and AllocationGranularity on Cygwin...
NAKAMURA Takumi [Wed, 4 Sep 2013 14:12:26 +0000 (14:12 +0000)]
Support/Process: Add comments about PageSize and AllocationGranularity on Cygwin and Win32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189940 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMemoryBuffer.cpp: Don't peek the next page if file is multiple of *physical* pagesize...
NAKAMURA Takumi [Wed, 4 Sep 2013 14:12:19 +0000 (14:12 +0000)]
MemoryBuffer.cpp: Don't peek the next page if file is multiple of *physical* pagesize(4k) but is not multiple of AllocationGranularity(64k), when a null terminator is required, on cygwin and win32.

For example, r189780's SparcISelLowering.cpp has the size 98304. It crashed clang to touch a null terminator on cygwin.

FIXME: It's not good to hardcode 4096 here. dwPageSize shows 4096.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189939 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoWhitespace.
NAKAMURA Takumi [Wed, 4 Sep 2013 14:12:12 +0000 (14:12 +0000)]
Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189938 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix linking of unnamed_addr.
Rafael Espindola [Wed, 4 Sep 2013 14:05:09 +0000 (14:05 +0000)]
Fix linking of unnamed_addr.

This was regression from r134829. When linking we have to be conservative. If
one of the symbols has a significant address, then the result should have it
too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189935 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoInstCombine: allow unmasked icmps to be combined with logical ops
Tim Northover [Wed, 4 Sep 2013 11:57:17 +0000 (11:57 +0000)]
InstCombine: allow unmasked icmps to be combined with logical ops

"(icmp op i8 A, B)" is equivalent to "(icmp op i8 (A & 0xff), B)" as a
degenerate case. Allowing this as a "masked" comparison when analysing "(icmp)
&/| (icmp)" allows us to combine them in more cases.

rdar://problem/7625728

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189931 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoInstCombine: look for masked compares with subset relation
Tim Northover [Wed, 4 Sep 2013 11:57:13 +0000 (11:57 +0000)]
InstCombine: look for masked compares with subset relation

Even in cases which aren't universally optimisable like "(A & B) != 0 && (A &
C) != 0", the masks can make one of the comparisons completely redundant. In
this case, since we've gone to the effort of spotting masked comparisons we
should combine them.

rdar://problem/7625728

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189930 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoInplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
Hao Liu [Wed, 4 Sep 2013 09:28:24 +0000 (09:28 +0000)]
Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
      sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshrun,sqshrn,uqshr,sqrshrn,uqrshrn,sshll,ushll
 and 4 convert instructions:
      scvtf,ucvtf,fcvtzs,fcvtzu

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189925 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse Intrinsic::ID for the pattern match templates, fixing a signed/unsigned
Eric Christopher [Wed, 4 Sep 2013 05:08:32 +0000 (05:08 +0000)]
Use Intrinsic::ID for the pattern match templates, fixing a signed/unsigned
comparison warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189921 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Revert "Remove the darwin gdb option, that version of gdb is now dead and...
Michael Gottesman [Wed, 4 Sep 2013 04:39:38 +0000 (04:39 +0000)]
Revert "Revert "Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level.""

This reverts commit r189913.

Talked with Eric on IRC. I am going to XFAIL the failing test since it
is using what Eric described as "the member hack" which was needed on
that old GDB.

Sorry for the noise!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189914 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Remove the darwin gdb option, that version of gdb is now dead and the rest...
Michael Gottesman [Wed, 4 Sep 2013 04:31:56 +0000 (04:31 +0000)]
Revert "Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level."

This reverts commit r189903.

This commit broke the phase 1 buildbot for a while.

http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/6684

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189913 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd llvm namespace to llvm::next.
Michael Gottesman [Wed, 4 Sep 2013 04:26:09 +0000 (04:26 +0000)]
Add llvm namespace to llvm::next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189912 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse llvm::next() instead of incrementing begin iterators of std::vector.
Michael Gottesman [Wed, 4 Sep 2013 04:19:01 +0000 (04:19 +0000)]
Use llvm::next() instead of incrementing begin iterators of std::vector.

Iterator of std::vector may be implemented as a raw pointer. In
this case begin iterators are rvalues and cannot be incremented.
For example, this is the case with STDCXX implementation of vector.

Patch by Konstantin Tokarev <annulen@yandex.ru>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189911 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMCDwarf.h: Prune a few stray \param(s). [-Wdocumentation]
NAKAMURA Takumi [Wed, 4 Sep 2013 02:10:32 +0000 (02:10 +0000)]
MCDwarf.h: Prune a few stray \param(s). [-Wdocumentation]

\param should be used to describe individual parameters. Use a command like \a or \c for visual enhancements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189905 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove the darwin gdb option, that version of gdb is now dead and
Eric Christopher [Wed, 4 Sep 2013 02:02:10 +0000 (02:02 +0000)]
Remove the darwin gdb option, that version of gdb is now dead and
the rest of the compatibility should be done on a dwarf-N level.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189903 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMake the default dwarf version 3 for darwin when we can't find one
Eric Christopher [Wed, 4 Sep 2013 01:38:30 +0000 (01:38 +0000)]
Make the default dwarf version 3 for darwin when we can't find one
in the module. Add a FIXME with a comment about darwin's ld.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189902 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoIt's a very large constant. Say so.
Eric Christopher [Wed, 4 Sep 2013 00:58:10 +0000 (00:58 +0000)]
It's a very large constant. Say so.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189899 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd r159136 back now that pr13124 has been fixed.
Rafael Espindola [Tue, 3 Sep 2013 23:34:36 +0000 (23:34 +0000)]
Add r159136 back now that pr13124 has been fixed.

Original message:
If a constant or a function has linkonce_odr linkage and unnamed_addr, mark
hidden. Being linkonce_odr guarantees that it is available in every dso that
needs it. Being a constant/function with unnamed_addr guarantees that the
copies don't have to be merged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189886 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[lit] Allow config files to pass arbitrary values to child configs.
Daniel Dunbar [Tue, 3 Sep 2013 23:32:55 +0000 (23:32 +0000)]
[lit] Allow config files to pass arbitrary values to child configs.

 - This aligns with how existing test suites end up wanting to use the local
   config files, conceptually it makes sense to consider them to be inherited.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189885 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoX86: Mark non-crashing report_fatal_errors() as such.
Jim Grosbach [Tue, 3 Sep 2013 23:02:00 +0000 (23:02 +0000)]
X86: Mark non-crashing report_fatal_errors() as such.

Previously, the clang crash handling code would kick in and give a crash
report for these, even though they're not that sort of error.

rdar://14882264

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189878 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[objc-arc] Remove dead code from previous commit.
Michael Gottesman [Tue, 3 Sep 2013 22:40:56 +0000 (22:40 +0000)]
[objc-arc] Remove dead code from previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189870 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[objc-arc] Turn off the objc_retainBlock -> objc_retain optimization.
Michael Gottesman [Tue, 3 Sep 2013 22:40:54 +0000 (22:40 +0000)]
[objc-arc] Turn off the objc_retainBlock -> objc_retain optimization.

The reason that I am turning off this optimization is that there is an
additional case where a block can escape that has come up. Specifically, this
occurs when a block is used in a scope outside of its current scope.

This can cause a captured retainable object pointer whose life is preserved by
the objc_retainBlock to be deallocated before the block is invoked.

An example of the code needed to trigger the bug is:

----
\#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
  void (^somethingToDoLater)();

  {
    NSObject *obj = [NSObject new];

    somethingToDoLater = ^{
      [obj self]; // Crashes here
    };
  }

  NSLog(@"test.");

  somethingToDoLater();
  return 0;
}
----

In the next commit, I remove all the dead code that results from this.

Once I put in the fixing commit I will bring back the tests that I deleted in
this commit.

rdar://14802782.
rdar://14868830.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189869 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[objc-arc] Move some block tests from basic.ll -> retain-block.ll and add some missin...
Michael Gottesman [Tue, 3 Sep 2013 22:40:50 +0000 (22:40 +0000)]
[objc-arc] Move some block tests from basic.ll -> retain-block.ll and add some missing CHECK-LABELS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189868 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd comments to the CFI instructions and reformat with clang-format. No functionality...
Bill Wendling [Tue, 3 Sep 2013 22:16:52 +0000 (22:16 +0000)]
Add comments to the CFI instructions and reformat with clang-format. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189864 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix copy and pasto with CMake files for unittest.
Eric Christopher [Tue, 3 Sep 2013 22:08:28 +0000 (22:08 +0000)]
Fix copy and pasto with CMake files for unittest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189863 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd a hashing routine that handles hashing types. Add a test for
Eric Christopher [Tue, 3 Sep 2013 21:57:57 +0000 (21:57 +0000)]
Add a hashing routine that handles hashing types. Add a test for
hashing the contents of DW_FORM_data1 on top of a type with attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189862 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSentences end with periods.
Eric Christopher [Tue, 3 Sep 2013 21:57:50 +0000 (21:57 +0000)]
Sentences end with periods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189861 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoEnable late-vectorization by default.
Nadav Rotem [Tue, 3 Sep 2013 21:33:17 +0000 (21:33 +0000)]
Enable late-vectorization by default.
This patch changes the default setting for the LateVectorization flag that controls where the loop-vectorizer is ran.

Perf gains:
SingleSource/Benchmarks/Shootout/matrix -37.33%
MultiSource/Benchmarks/PAQ8p/paq8p  -22.83%
SingleSource/Benchmarks/Linpack/linpack-pc  -16.22%
SingleSource/Benchmarks/Shootout-C++/ary3 -15.16%
MultiSource/Benchmarks/TSVC/NodeSplitting-flt/NodeSplitting-flt -10.34%
MultiSource/Benchmarks/TSVC/NodeSplitting-dbl/NodeSplitting-dbl -7.12%

Regressions:
SingleSource/Benchmarks/Misc/lowercase  15.10%
MultiSource/Benchmarks/TSVC/Equivalencing-flt/Equivalencing-flt 13.18%
SingleSource/Benchmarks/Shootout-C++/matrix 8.27%
SingleSource/Benchmarks/CoyoteBench/lpbench 7.30%

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189858 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix grammar
Matt Arsenault [Tue, 3 Sep 2013 21:05:51 +0000 (21:05 +0000)]
Fix grammar

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189855 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTeach InstCombineLoadCast about address spaces.
Matt Arsenault [Tue, 3 Sep 2013 21:05:48 +0000 (21:05 +0000)]
Teach InstCombineLoadCast about address spaces.

This is another one that doesn't matter much,
but uses the right GEP index types in the first
place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189854 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse type form of getIntPtrType in alloca visitor.
Matt Arsenault [Tue, 3 Sep 2013 21:05:15 +0000 (21:05 +0000)]
Use type form of getIntPtrType in alloca visitor.

This doesn't actually matter, since alloca is always
0 address space, but this is more consistent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189853 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoWIP: Refactor some code so that it can be called by more than just one method. No...
Bill Wendling [Tue, 3 Sep 2013 20:59:07 +0000 (20:59 +0000)]
WIP: Refactor some code so that it can be called by more than just one method. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189849 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAlphabetize.
Eric Christopher [Tue, 3 Sep 2013 20:51:14 +0000 (20:51 +0000)]
Alphabetize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189848 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd a Python-like join function to merge a list of strings with a
Joerg Sonnenberger [Tue, 3 Sep 2013 20:43:54 +0000 (20:43 +0000)]
Add a Python-like join function to merge a list of strings with a
separator between each two elements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189846 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""
Jim Grosbach [Tue, 3 Sep 2013 20:08:17 +0000 (20:08 +0000)]
Revert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""

This reverts commit r189648.

Fixes for the previously failing clang-side arm_neon_intrinsics test
cases will be checked in separately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189841 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd the rest of the stock attributes to the attribute table.
Eric Christopher [Tue, 3 Sep 2013 20:00:20 +0000 (20:00 +0000)]
Add the rest of the stock attributes to the attribute table.

This won't affect the kinds of hashes we test for as we actually
do hashing based on form and attribute. Change the fission-hash
testcase one last time to handle DW_AT_comp_dir.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189840 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTableGen: Enumerate Schedule Model too.
Vincent Lejeune [Tue, 3 Sep 2013 19:43:28 +0000 (19:43 +0000)]
TableGen: Enumerate Schedule Model too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189839 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoIn this patch we are trying to do two things:
Yi Jiang [Tue, 3 Sep 2013 17:26:04 +0000 (17:26 +0000)]
In this patch we are trying to do two things:
1) If the width of vectorization list candidate is bigger than vector reg width, we will break it down to fit the vector reg.
2) We do not vectorize the width which is not power of two.

The performance result shows it will help some spec benchmarks. mesa improved 6.97% and ammp improved 1.54%.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189830 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPrint string value for DT_RPATH and DT_RUNPATH.
Joerg Sonnenberger [Tue, 3 Sep 2013 17:13:53 +0000 (17:13 +0000)]
Print string value for DT_RPATH and DT_RUNPATH.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189829 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[MC] Revert part of my previous change, I was a bit overzealous.
Joey Gouly [Tue, 3 Sep 2013 16:18:19 +0000 (16:18 +0000)]
[MC] Revert part of my previous change, I was a bit overzealous.

A change to test the previous commit will be coming soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189825 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMigrate the DWARF_VERSION constant to 4. It largely needs to go away.
Eric Christopher [Tue, 3 Sep 2013 16:11:13 +0000 (16:11 +0000)]
Migrate the DWARF_VERSION constant to 4. It largely needs to go away.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189824 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL
Richard Sandiford [Tue, 3 Sep 2013 15:38:35 +0000 (15:38 +0000)]
[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL

For now this just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189819 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[MC] AvailableFeatures needs to be a uint64_t to match FeatureBits in MCSubtargetInfo.
Joey Gouly [Tue, 3 Sep 2013 15:03:36 +0000 (15:03 +0000)]
[MC] AvailableFeatures needs to be a uint64_t to match FeatureBits in MCSubtargetInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189815 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[msan] Fix handling of select with struct arguments.
Evgeniy Stepanov [Tue, 3 Sep 2013 13:05:29 +0000 (13:05 +0000)]
[msan] Fix handling of select with struct arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189796 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[msan] Fix select instrumentation.
Evgeniy Stepanov [Tue, 3 Sep 2013 10:04:11 +0000 (10:04 +0000)]
[msan] Fix select instrumentation.

Select condition shadow was being ignored resulting in false negatives.
This change OR-s sign-extended condition shadow into the result shadow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189785 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Added IntrNoMem and removed Commutative from sub intrinsics.
Daniel Sanders [Tue, 3 Sep 2013 09:45:20 +0000 (09:45 +0000)]
[mips][msa] Added IntrNoMem and removed Commutative from sub intrinsics.

This changes the SelectionDAG nodes from ISD::INTRINSIC_W_CHAIN to
ISD::INTRINSIC_WO_CHAIN which enables easy lowering to equivalent SelectionDAG
nodes (e.g. __builtin_msa_sub_w -> ISD::SUB) in future patches since nodes
such as ISD::SUB do not have a chain.
It also corrects an obvious mistake, namely that the subtract intrinsics were
marked as being commutative.

As per a similar change in r189106
(http://llvm.org/viewvc/llvm-project?rev=189106&view=rev) there isn’t a new
testcase in this patch since the existing tests should test the intrinsics to
the same standard and the best I can do for a testcase would be a fragile
pass/maybe test of whether memory operations can (and do) cross the intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189784 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Added IntrNoMem to the floating-point intrinsics.
Daniel Sanders [Tue, 3 Sep 2013 09:35:20 +0000 (09:35 +0000)]
[mips][msa] Added IntrNoMem to the floating-point intrinsics.

This changes the SelectionDAG nodes from ISD::INTRINSIC_W_CHAIN to
ISD::INTRINSIC_WO_CHAIN which enables easy lowering to equivalent SelectionDAG
nodes (e.g. __builtin_msa_fadd_w -> ISD::FADD) in future patches since nodes
such as ISD::FADD do not have a chain.

As per a similar change in r189106
(http://llvm.org/viewvc/llvm-project?rev=189106&view=rev) there isn’t a new
testcase in this patch since the existing tests should test the intrinsics to
the same standard and the best I can do for a testcase would be a fragile
pass/maybe test of whether memory operations can (and do) cross the intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189782 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[Sparc] Add support for soft long double (fp128).
Venkatraman Govindaraju [Tue, 3 Sep 2013 04:11:59 +0000 (04:11 +0000)]
[Sparc] Add support for soft long double (fp128).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189780 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd hadSideEffects=0 to some instructions.
Craig Topper [Tue, 3 Sep 2013 03:56:17 +0000 (03:56 +0000)]
Add hadSideEffects=0 to some instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189779 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[Sparc] Implement spill and load for long double(f128) registers.
Venkatraman Govindaraju [Mon, 2 Sep 2013 18:32:45 +0000 (18:32 +0000)]
[Sparc] Implement spill and load for long double(f128) registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189768 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: Default to the Swift CPU when targeting armv7s/thumbv7s.
Tilmann Scheller [Mon, 2 Sep 2013 17:09:01 +0000 (17:09 +0000)]
ARM: Default to the Swift CPU when targeting armv7s/thumbv7s.

Test cases adjusted accordingly.

This fixes rdar://14871821.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189766 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert 189756 for now, it doesn't match what rdar://14871821 really wants.
Tilmann Scheller [Mon, 2 Sep 2013 15:48:17 +0000 (15:48 +0000)]
Revert 189756 for now, it doesn't match what rdar://14871821 really wants.

What we really want is to enable Swift by default for *v7s triples (and there already seems to be some logic which attempts to do that). In that case the iOS version doesn't matter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189763 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: Default to Swift when compiling for iOS 6 or later.
Tilmann Scheller [Mon, 2 Sep 2013 12:01:58 +0000 (12:01 +0000)]
ARM: Default to Swift when compiling for iOS 6 or later.

Test cases adjusted accordingly.

This fixes rdar://14871821.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189756 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFileCheck-ize three tests of llvm/test/CodeGen/X86/h-register(s).
NAKAMURA Takumi [Mon, 2 Sep 2013 12:00:53 +0000 (12:00 +0000)]
FileCheck-ize three tests of llvm/test/CodeGen/X86/h-register(s).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189755 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agollvm/test/CodeGen/X86: Update tests with -mattr=-bmi not to take BMI, corresponding...
NAKAMURA Takumi [Mon, 2 Sep 2013 12:00:46 +0000 (12:00 +0000)]
llvm/test/CodeGen/X86: Update tests with -mattr=-bmi not to take BMI, corresponding to Craig's r189742.

AMD Piledriver builder detected failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189754 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[CMake] Add -O1 in debug builds with LLVM_USE_SANITIZER
Alexey Samsonov [Mon, 2 Sep 2013 09:15:01 +0000 (09:15 +0000)]
[CMake] Add -O1 in debug builds with LLVM_USE_SANITIZER

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189747 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCreate BEXTR instructions for (and ((sra or srl) x, imm), (2**size - 1)). Fixes PR17028.
Craig Topper [Mon, 2 Sep 2013 07:53:17 +0000 (07:53 +0000)]
Create BEXTR instructions for (and ((sra or srl) x, imm), (2**size - 1)). Fixes PR17028.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189742 91177308-0d34-0410-b5e6-96231b3b80d8