oota-llvm.git
11 years ago[mips] Do not add SecondLastInst to list BranchInstrs if there is only one
Akira Hatanaka [Fri, 1 Mar 2013 01:22:26 +0000 (01:22 +0000)]
[mips] Do not add SecondLastInst to list BranchInstrs if there is only one
terminator.

No functionality change.

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

11 years ago[mips] Define an overloaded version of function MipsInstrInfo::AnalyzeBranchAdd.
Akira Hatanaka [Fri, 1 Mar 2013 01:10:17 +0000 (01:10 +0000)]
[mips] Define an overloaded version of function MipsInstrInfo::AnalyzeBranchAdd.

This function will be used later when the capability to search delay slot
filling instructions in successor blocks is added. No intended functionality
changes.

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

11 years ago[mips] Add options to disable searching backward and in successor blocks.
Akira Hatanaka [Fri, 1 Mar 2013 01:02:36 +0000 (01:02 +0000)]
[mips] Add options to disable searching backward and in successor blocks.

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

11 years ago[mips] Add capability to search in the forward direction for instructions that
Akira Hatanaka [Fri, 1 Mar 2013 00:50:52 +0000 (00:50 +0000)]
[mips] Add capability to search in the forward direction for instructions that
can fill the delay slot.

Currently, this is off by default.

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

11 years ago[mips] Define helper function searchRange
Akira Hatanaka [Fri, 1 Mar 2013 00:26:14 +0000 (00:26 +0000)]
[mips] Define helper function searchRange

No functionality change.

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

11 years ago[mips] Rename function findDelayInstr to searchBackward.
Akira Hatanaka [Fri, 1 Mar 2013 00:20:16 +0000 (00:20 +0000)]
[mips] Rename function findDelayInstr to searchBackward.

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

11 years agoScheduler diagnostics. Print the register name.
Andrew Trick [Fri, 1 Mar 2013 00:19:14 +0000 (00:19 +0000)]
Scheduler diagnostics. Print the register name.

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

11 years agoFix incorrect ScheduleDAG comment and formalize Weak edges.
Andrew Trick [Fri, 1 Mar 2013 00:19:12 +0000 (00:19 +0000)]
Fix incorrect ScheduleDAG comment and formalize Weak edges.

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

11 years agoInstructions schedulers should report correct height/depth.
Andrew Trick [Fri, 1 Mar 2013 00:19:09 +0000 (00:19 +0000)]
Instructions schedulers should report correct height/depth.

We avoided computing DAG height/depth during Node printing because it
shouldn't depend on an otherwise valid DAG. But this has become far
too annoying for the common case of a valid DAG where we want to see
valid values. If doing the computation on-the-fly turns out to be a
problem in practice, then I'll add a mode to the diagnostics to only
force it when we're likely to have a valid DAG, otherwise explicitly
print INVALID instead of bogus numbers. For now, just go for it all
the time.

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

11 years ago[mips] Define class MemDefsUses.
Akira Hatanaka [Fri, 1 Mar 2013 00:16:31 +0000 (00:16 +0000)]
[mips] Define class MemDefsUses.

This class tracks dependence between memory instructions using underlying
objects of memory operands.

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

11 years agoConnect LLVM CMake build scripts to LLDB's CMake scripts:
Daniel Malea [Thu, 28 Feb 2013 23:15:15 +0000 (23:15 +0000)]
Connect LLVM CMake build scripts to LLDB's CMake scripts:
- if you have LLDB checked out in $llvm/tools, CMake will build it now!
- LLDB is known to build on Linux with libstdc++ and GCC 4.6/4.7 or Clang 3.3
- to run lldb tests, do "make check-lldb" after a build

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

11 years agoA small refactoring + adding comments.
Eli Bendersky [Thu, 28 Feb 2013 23:09:18 +0000 (23:09 +0000)]
A small refactoring + adding comments.

SelectionDAGIsel::LowerArguments needs a function, not a basic block. So it
makes sense to pass it the function instead of extracting a basic-block from
the function and then tossing it. This is also more self-documenting (functions
have arguments, BBs don't).

In addition, added comments to a couple of Select* methods.

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

11 years agoDon't add the 'Value' string if there isn't one.
Bill Wendling [Thu, 28 Feb 2013 21:17:03 +0000 (21:17 +0000)]
Don't add the 'Value' string if there isn't one.

This was causing the folding set to fail to fold attributes, because it was
being calculated in one spot without an empty values string but here with an
empty values string.

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

11 years agoFix a bug in instcombine for fmul in fast math mode.
Quentin Colombet [Thu, 28 Feb 2013 21:12:40 +0000 (21:12 +0000)]
Fix a bug in instcombine for fmul in fast math mode.
The instcombine recognized pattern looks like:
a = b * c
d = a +/- Cst
or
a = b * c
d = Cst +/- a

When creating the new operands for fadd or fsub instruction following the related fmul, the first operand was created with the second original operand (M0 was created with C1) and the second with the first (M1 with Opnd0).

The fix consists in creating the new operands with the appropriate original operand, i.e., M0 with Opnd0 and M1 with C1.

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

11 years agoMove an assert earlier in a file and check that the result of
Eric Christopher [Thu, 28 Feb 2013 20:26:17 +0000 (20:26 +0000)]
Move an assert earlier in a file and check that the result of
our bitwise compare is equal to the field we're looking for.

Noticed on inspection.

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

11 years agoBrag about function call vectorization in the docs.
Benjamin Kramer [Thu, 28 Feb 2013 19:33:46 +0000 (19:33 +0000)]
Brag about function call vectorization in the docs.

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

11 years agoDon't add an attribute that already exists and don't remove an attribute that doesn...
Bill Wendling [Thu, 28 Feb 2013 19:17:40 +0000 (19:17 +0000)]
Don't add an attribute that already exists and don't remove an attribute that doesn't exist.

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

11 years agoTidy up; no functional change.
Chad Rosier [Thu, 28 Feb 2013 19:16:42 +0000 (19:16 +0000)]
Tidy up; no functional change.

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

11 years agoCost model support for lowered math builtins.
Benjamin Kramer [Thu, 28 Feb 2013 19:09:33 +0000 (19:09 +0000)]
Cost model support for lowered math builtins.

We make the cost for calling libm functions extremely high as emitting the
calls is expensive and causes spills (on x86) so performance suffers. We still
vectorize important calls like ceilf and friends on SSE4.1. and fabs.

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

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

11 years agoStyle; no functional change.
Chad Rosier [Thu, 28 Feb 2013 18:54:27 +0000 (18:54 +0000)]
Style; no functional change.

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

11 years agoPut some per-instruction statistics of fast isel under NDEBUG, together with
Eli Bendersky [Thu, 28 Feb 2013 18:05:12 +0000 (18:05 +0000)]
Put some per-instruction statistics of fast isel under NDEBUG, together with
other per-instruction statistics.

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

11 years agoRe-format comments (and check commit access)
Yiannis Tsiouris [Thu, 28 Feb 2013 16:59:10 +0000 (16:59 +0000)]
Re-format comments (and check commit access)

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

11 years agoAArch64: remove post-encoder method from FCMP (immediate) instructions.
Tim Northover [Thu, 28 Feb 2013 14:46:14 +0000 (14:46 +0000)]
AArch64: remove post-encoder method from FCMP (immediate) instructions.

The work done by the post-encoder (setting architecturally unused bits to 0 as
required) can be done by the existing operand that covers the "#0.0". This
removes at least one use of the discouraged PostEncoderMethod uses.

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

11 years agoAArch64: be more careful resorting to inefficient addressing for weak vars.
Tim Northover [Thu, 28 Feb 2013 14:36:31 +0000 (14:36 +0000)]
AArch64: be more careful resorting to inefficient addressing for weak vars.

If an otherwise weak var is actually defined in this unit, it can't be
undefined at runtime so we can use normal global variable sequences (ADRP/ADD)
to access it.

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

11 years agoAArch64: don't drop GlobalAddress offset when handling extern_weak decls.
Tim Northover [Thu, 28 Feb 2013 14:36:24 +0000 (14:36 +0000)]
AArch64: don't drop GlobalAddress offset when handling extern_weak decls.

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

11 years agoAdd the -disable-opt option to LTO. This adds:
Bill Wendling [Thu, 28 Feb 2013 14:11:10 +0000 (14:11 +0000)]
Add the -disable-opt option to LTO. This adds:

- Consistency with opt (which supports the same option with the same meaning and
  description).
- Debugging gold plugin-based linking without optimizations getting in the way.
- Debugging programs linked with the gold plugin while preserving the original
  debug info.
- Fine-grained control over LTO passes using the gold plugin in combination with
  opt (or clang/dragonegg).

Patch by Cristiano Giuffrida!

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

11 years agoAArch64: Use cbnz instead of cmp/b.ne pair for atomic operations.
Tim Northover [Thu, 28 Feb 2013 13:52:07 +0000 (13:52 +0000)]
AArch64: Use cbnz instead of cmp/b.ne pair for atomic operations.

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

11 years ago[msan] Implement sanitize_memory attribute.
Evgeniy Stepanov [Thu, 28 Feb 2013 11:25:14 +0000 (11:25 +0000)]
[msan] Implement sanitize_memory attribute.

Shadow checks are disabled and memory loads always produce fully initialized
values in functions that don't have a sanitize_memory attribute. Value and
argument shadow is propagated as usual.

This change also updates blacklist behaviour to match the above.

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

11 years agoCorrections for XFAIL armv5 tests
Renato Golin [Thu, 28 Feb 2013 10:05:10 +0000 (10:05 +0000)]
Corrections for XFAIL armv5 tests

Most of the tests that behave differently on llvm-arm-linux buildbot
did so becase the triple wasn't set correctly to armv5, so we can
revert most of the special behaviour added previously. Some tests
still need the special treatment, though.

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

11 years agoRemove unused leftover declarations.
Evgeniy Stepanov [Thu, 28 Feb 2013 08:42:11 +0000 (08:42 +0000)]
Remove unused leftover declarations.

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

11 years agoEnable syntax highlighting for reStructuredText files.
Bill Wendling [Thu, 28 Feb 2013 06:43:24 +0000 (06:43 +0000)]
Enable syntax highlighting for reStructuredText files.
Patch by Journeyer J. Joh!

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

11 years ago[Support][ErrorOr] Add support for implicit conversion from error code/condition...
Michael J. Spencer [Thu, 28 Feb 2013 01:44:26 +0000 (01:44 +0000)]
[Support][ErrorOr] Add support for implicit conversion from error code/condition enums.

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

11 years ago[PathV2] In llvm::sys::fs::unique_file, make sure it doesn't fall into an infinite...
Argyrios Kyrtzidis [Thu, 28 Feb 2013 00:38:19 +0000 (00:38 +0000)]
[PathV2] In llvm::sys::fs::unique_file, make sure it doesn't fall into an infinite loop by constantly trying
to create the parent path.

This can happen if the path is a relative filename and the current directory was removed.
Thanks to Daniel D. for the hint in fixing it.

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

11 years agoFix a problem in alias analysis. It is about the misinterpretation of "Object".
Shuxin Yang [Thu, 28 Feb 2013 00:24:45 +0000 (00:24 +0000)]
Fix a problem in alias analysis. It is about the misinterpretation of "Object".

This problem is exposed by r171325 which is already reverted. It is rather
hard to fabricate a testing case without it.

r171325 should *NOT* be resurrected as it has a potential problem although
this problem dosen't directly contribute to PR14988.

The bug is tracked by:
  - rdar://13063553, and
  - http://llvm.org/bugs/show_bug.cgi?id=14988

Thank Arnold for coming up a better solution to this problem. After
comparing this solution and my original proposal, I decided to ditch mine.

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

11 years agoRemove unnecessary check against isGlobalVariable. We check it
Eric Christopher [Wed, 27 Feb 2013 23:49:50 +0000 (23:49 +0000)]
Remove unnecessary check against isGlobalVariable. We check it
a few lines above.

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

11 years agoRework comment slightly and fix a few typos.
Eric Christopher [Wed, 27 Feb 2013 23:49:47 +0000 (23:49 +0000)]
Rework comment slightly and fix a few typos.

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

11 years agoRemove unnecessary cast to void.
Eric Christopher [Wed, 27 Feb 2013 23:49:45 +0000 (23:49 +0000)]
Remove unnecessary cast to void.

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

11 years agoDebug Info: for static member variables, always put AT_MIPS_linkage_name to the
Manman Ren [Wed, 27 Feb 2013 23:21:02 +0000 (23:21 +0000)]
Debug Info: for static member variables, always put AT_MIPS_linkage_name to the
definition DIE (TAG_variable), and put AT_MIPS_linkage_name to TAG_member when
DarwinGDBCompat is true.

Darwin GDB needs AT_MIPS_linkage_name at both places to work.

Follow-up patch to r176143.
rdar://problem/13291234

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

11 years agoSilence the unused variable warning.
Nadav Rotem [Wed, 27 Feb 2013 22:52:54 +0000 (22:52 +0000)]
Silence the unused variable warning.

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

11 years agoThe FastISEL should be fast. But when we record statistics we use atomic operations...
Nadav Rotem [Wed, 27 Feb 2013 21:59:43 +0000 (21:59 +0000)]
The FastISEL should be fast. But when we record statistics we use atomic operations to increment the counters.
This patch disables the counters on non-debug builds. This reduces the runtime of SelectionDAGISel::SelectCodeCommon by ~5%.

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

11 years agoCopy missing member in DataLayout copy ctor.
David Blaikie [Wed, 27 Feb 2013 21:44:59 +0000 (21:44 +0000)]
Copy missing member in DataLayout copy ctor.

Test case is missing due to it not being reachable through the current tools
but out of tree code such as the sample at
http://llvm.org/docs/tutorial/LangImpl4.html

Patch by Peng Cheng <gm4cheng@gmail.com>

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

11 years agoARM: FMA is legal only if VFP4 is available.
Jim Grosbach [Wed, 27 Feb 2013 21:31:12 +0000 (21:31 +0000)]
ARM: FMA is legal only if VFP4 is available.

rdar://13306723

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

11 years agoRemove this instance of dl as it's defined in a previous scope.
Chad Rosier [Wed, 27 Feb 2013 20:34:14 +0000 (20:34 +0000)]
Remove this instance of dl as it's defined in a previous scope.

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

11 years agoReverted: r176136 - Have a way for a target to opt-out of target-independent fast...
Michael Ilseman [Wed, 27 Feb 2013 19:54:00 +0000 (19:54 +0000)]
Reverted: r176136 - Have a way for a target to opt-out of target-independent fast isel

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

11 years ago[docs] Discuss manpage output.
Sean Silva [Wed, 27 Feb 2013 18:48:42 +0000 (18:48 +0000)]
[docs] Discuss manpage output.

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

11 years agoSwitching -1ULL to UINT64_MAX to fix MSVC warnings. Patch thanks to Peng Cheng!
Aaron Ballman [Wed, 27 Feb 2013 18:38:33 +0000 (18:38 +0000)]
Switching -1ULL to UINT64_MAX to fix MSVC warnings.  Patch thanks to Peng Cheng!

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

11 years ago[docs] Provide pointer for building Sphinx docs.
Sean Silva [Wed, 27 Feb 2013 18:33:21 +0000 (18:33 +0000)]
[docs] Provide pointer for building Sphinx docs.

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

11 years agoSuppressing MSVC warnings; patch thanks to Peng Cheng!
Aaron Ballman [Wed, 27 Feb 2013 18:25:41 +0000 (18:25 +0000)]
Suppressing MSVC warnings; patch thanks to Peng Cheng!

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

11 years agoprint TLS segment
Shankar Easwaran [Wed, 27 Feb 2013 17:57:17 +0000 (17:57 +0000)]
print TLS segment

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

11 years agoARM: permit full range of valid ADR immediates.
Tim Northover [Wed, 27 Feb 2013 16:43:09 +0000 (16:43 +0000)]
ARM: permit full range of valid ADR immediates.

This fixes an issue where trying to assemlbe valid ADR instructions would cause
LLVM to hit a failed assertion.

Patch by Keith Walker.

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

11 years agoLoopVectorize: Vectorize math builtin calls.
Benjamin Kramer [Wed, 27 Feb 2013 15:24:19 +0000 (15:24 +0000)]
LoopVectorize: Vectorize math builtin calls.

This properly asks TargetLibraryInfo if a call is available and if it is, it
can be translated into the corresponding LLVM builtin. We don't vectorize sqrt()
yet because I'm not sure about the semantics for negative numbers. The other
intrinsic should be exact equivalents to the libm functions.

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

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

11 years agoForgot that this file needs to be C89 not C99 thanks to MSVC. No functionality
Nick Lewycky [Wed, 27 Feb 2013 08:28:35 +0000 (08:28 +0000)]
Forgot that this file needs to be C89 not C99 thanks to MSVC. No functionality
change!

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

11 years agoIn GCC 4.7, function names are now forbidden from .gcda files. Support this by
Nick Lewycky [Wed, 27 Feb 2013 06:22:56 +0000 (06:22 +0000)]
In GCC 4.7, function names are now forbidden from .gcda files. Support this by
passing a null pointer to the function name in to GCDAProfiling, and add another
switch onto GCOVProfiling.

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

11 years agoDoh, fix behaviour change introduced in r176168 which is tested in clang,
Nick Lewycky [Wed, 27 Feb 2013 06:21:30 +0000 (06:21 +0000)]
Doh, fix behaviour change introduced in r176168 which is tested in clang,
not llvm.

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

11 years agoRevert r176166 because it broke one of the lit tests.
Nadav Rotem [Wed, 27 Feb 2013 05:56:20 +0000 (05:56 +0000)]
Revert r176166 because it broke one of the lit tests.

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

11 years agoFor each function that we optimize we initialize a new list of lib functions. For...
Nadav Rotem [Wed, 27 Feb 2013 05:53:43 +0000 (05:53 +0000)]
For each function that we optimize we initialize a new list of lib functions. For each function name we malloc memory. This patch changes the Libcall map to use BumpPtrAllocator. Now we malloc only once. This speeds up instcombine by a few % on a large c++ program.

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

11 years agoIRBuilder has grown all sorts of useful utility functions. Make use of them to
Nick Lewycky [Wed, 27 Feb 2013 05:46:30 +0000 (05:46 +0000)]
IRBuilder has grown all sorts of useful utility functions. Make use of them to
clean up this code a tiny bit. No functionality change.

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

11 years agostd::string to StringRef.
Nadav Rotem [Wed, 27 Feb 2013 05:23:56 +0000 (05:23 +0000)]
std::string to StringRef.

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

11 years agoFix cut/paste error in a comment.
Reed Kotler [Wed, 27 Feb 2013 04:20:14 +0000 (04:20 +0000)]
Fix cut/paste error in a comment.

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

11 years agoAdd the skeleton for the Mips constant island pass.
Reed Kotler [Wed, 27 Feb 2013 03:33:58 +0000 (03:33 +0000)]
Add the skeleton for the Mips constant island pass.
It will only be used for Mips 16 at this time.

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

11 years agoIR: Don't constant fold GEP bitcasts between different address spaces
Meador Inge [Wed, 27 Feb 2013 02:26:42 +0000 (02:26 +0000)]
IR: Don't constant fold GEP bitcasts between different address spaces

PR15262 reported a bug where the following instruction:

  i8 getelementptr inbounds i8* bitcast ([4 x i8] addrspace(12)* @buf to i8*),
                                i32 2

was getting folded into:

  addrspace(12)* getelementptr inbounds ([4 x i8] addrspace(12)* @buf, i32 0,
                                        i32 2)

This caused instcombine to crash because the original instruction and
the folded instruction have different types.  The issue was fixed by
disallowing bitcasts between different address spaces to be folded away.

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

11 years agoSelectionDAG: If llvm.donothing has a landingpad, we should clear
Manman Ren [Wed, 27 Feb 2013 02:11:57 +0000 (02:11 +0000)]
SelectionDAG: If llvm.donothing has a landingpad, we should clear
CurrentCallSite to avoid an assertion failure:
assert(MMI.getCurrentCallSite() == 0 && "Overlapping call sites!");

rdar://problem/13228754

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

11 years agoDebug Info: for static member variables, add AT_MIPS_linkage_name to the
Manman Ren [Wed, 27 Feb 2013 00:02:32 +0000 (00:02 +0000)]
Debug Info: for static member variables, add AT_MIPS_linkage_name to the
definition DIE, to make old GDB happy.

We have a regression for old GDB when Clang uses DW_TAG_member to declare
static members inside a class, instead of DW_TAG_variable. This patch will fix
this regression.

rdar://problem/13291234

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

11 years agoEnhance integer division emulation support to handle types smaller than 32 bits,
Pedro Artigas [Tue, 26 Feb 2013 23:33:20 +0000 (23:33 +0000)]
Enhance integer division emulation support to handle types smaller than 32 bits,
enhancement done the trivial way; by extending inputs and truncating outputs
which is addequate for targets with little or no support for integer arithmetic
on integer types less than 32 bits.

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

11 years agoHave a way for a target to opt-out of target-independent fast isel
Michael Ilseman [Tue, 26 Feb 2013 23:15:23 +0000 (23:15 +0000)]
Have a way for a target to opt-out of target-independent fast isel

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

11 years agoTry to get rid of a -wunitialized warning: explicitly initialize the pointer
Eli Bendersky [Tue, 26 Feb 2013 23:04:17 +0000 (23:04 +0000)]
Try to get rid of a -wunitialized warning: explicitly initialize the pointer
to NULL and use asserts to check in relevant places.

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

11 years agoConstant fold vector bitcasts of halves similarly to how floats and doubles are folde...
Michael Ilseman [Tue, 26 Feb 2013 22:51:07 +0000 (22:51 +0000)]
Constant fold vector bitcasts of halves similarly to how floats and doubles are folded. Test case included.

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

11 years agoAdd support for autodetection of ADM bdver2.
Roman Divacky [Tue, 26 Feb 2013 22:41:01 +0000 (22:41 +0000)]
Add support for autodetection of ADM bdver2.

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

11 years agoRevert r176120 as it caused a failure at static-member.cpp
Manman Ren [Tue, 26 Feb 2013 22:35:53 +0000 (22:35 +0000)]
Revert r176120 as it caused a failure at static-member.cpp

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

11 years ago[TableGen] Fix ICE on MSVC 2012 Release builds.
Michael J. Spencer [Tue, 26 Feb 2013 21:29:47 +0000 (21:29 +0000)]
[TableGen] Fix ICE on MSVC 2012 Release builds.

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

11 years agoFix PR15332 (patch by Florian Zeitz).
Bill Schmidt [Tue, 26 Feb 2013 21:28:57 +0000 (21:28 +0000)]
Fix PR15332 (patch by Florian Zeitz).

There's no need to generate a stack frame for PPC32 SVR4 when there are
no local variables assigned to the stack, i.e., when no red zone is needed.
(PPC64 supports a red zone, but PPC32 does not.)

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

11 years agoFix auto_ptr is deprecated warnings
Matt Arsenault [Tue, 26 Feb 2013 21:20:35 +0000 (21:20 +0000)]
Fix auto_ptr is deprecated warnings

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

11 years agoDebug Info: for static member variables, move AT_MIPS_linkage_name from
Manman Ren [Tue, 26 Feb 2013 20:48:29 +0000 (20:48 +0000)]
Debug Info: for static member variables, move AT_MIPS_linkage_name from
TAG_member inside a class to the specification DIE.

Having AT_MIPS_linkage_name on TAG_member caused old gdb (GNU 6.3.50) to
error out. Also gcc 4.7 has AT_MIPS_linkage_name on the specification DIE.

rdar://problem/13291234

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

11 years agoAdd a test case for r176066.
Chad Rosier [Tue, 26 Feb 2013 20:22:30 +0000 (20:22 +0000)]
Add a test case for r176066.

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

11 years agoAsmParser: More generic support for integer type suffices.
Jim Grosbach [Tue, 26 Feb 2013 20:17:10 +0000 (20:17 +0000)]
AsmParser: More generic support for integer type suffices.

For integer constants, allow 'L', 'UL' as well as 'ULL' and 'LL'. This provides
better support for shared headers between .s and .c files that define bunches
of constant values.

rdar://9321056

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

11 years agoFix typo
Matt Arsenault [Tue, 26 Feb 2013 20:13:09 +0000 (20:13 +0000)]
Fix typo

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

11 years agoAnother test commit. Remove trailing whitespace.
Matt Arsenault [Tue, 26 Feb 2013 19:33:48 +0000 (19:33 +0000)]
Another test commit. Remove trailing whitespace.

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

11 years agoTest commit. Remove trailing whitespace.
Matt Arsenault [Tue, 26 Feb 2013 19:18:06 +0000 (19:18 +0000)]
Test commit. Remove trailing whitespace.

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

11 years agoRemove a few unused arguments.
Chad Rosier [Tue, 26 Feb 2013 18:39:31 +0000 (18:39 +0000)]
Remove a few unused arguments.

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

11 years ago[docs] Use reST link instead of direct HTML link.
Sean Silva [Tue, 26 Feb 2013 18:22:18 +0000 (18:22 +0000)]
[docs] Use reST link instead of direct HTML link.

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

11 years agoSlight cosmetic fixes
Eli Bendersky [Tue, 26 Feb 2013 18:05:31 +0000 (18:05 +0000)]
Slight cosmetic fixes

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

11 years agoR600/SI: Add promotion of e32 to e64 in operand folding
Christian Konig [Tue, 26 Feb 2013 17:52:47 +0000 (17:52 +0000)]
R600/SI: Add promotion of e32 to e64 in operand folding

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176105 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: add VOP mapping functions
Christian Konig [Tue, 26 Feb 2013 17:52:42 +0000 (17:52 +0000)]
R600/SI: add VOP mapping functions

Make it possible to map between e32 and e64 encoding opcodes.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176104 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: swap operands if it helps folding
Christian Konig [Tue, 26 Feb 2013 17:52:36 +0000 (17:52 +0000)]
R600/SI: swap operands if it helps folding

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176103 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: add some more instruction flags
Christian Konig [Tue, 26 Feb 2013 17:52:29 +0000 (17:52 +0000)]
R600/SI: add some more instruction flags

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176102 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: add post ISel folding for SI v2
Christian Konig [Tue, 26 Feb 2013 17:52:23 +0000 (17:52 +0000)]
R600/SI: add post ISel folding for SI v2

Include immediate folding and SGPR limit handling for VOP3 instructions.

v2: remove leftover hasExtraSrcRegAllocReq

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176101 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: add folding helper
Christian Konig [Tue, 26 Feb 2013 17:52:16 +0000 (17:52 +0000)]
R600/SI: add folding helper

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176100 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: fix VOP3b encoding v2
Christian Konig [Tue, 26 Feb 2013 17:52:09 +0000 (17:52 +0000)]
R600/SI: fix VOP3b encoding v2

v2: document why we hardcode VCC for now.

This is a candidate for the mesa-stable branch.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176099 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: fix and cleanup SI register definition v2
Christian Konig [Tue, 26 Feb 2013 17:52:03 +0000 (17:52 +0000)]
R600/SI: fix and cleanup SI register definition v2

Prevent producing real strange tablegen code by using
proper register sizes, alignments and hierarchy.

Also cleanup the unused definitions and add some comments.

v2: add SGPR 512 bit registers, stop registers from wrapping around,
    fix SGPR alignment

This is a candidate for the mesa-stable branch.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176098 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: fix stupid typo
Christian Konig [Tue, 26 Feb 2013 17:51:57 +0000 (17:51 +0000)]
R600/SI: fix stupid typo

This is a candidate for the mesa-stable branch.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176097 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdding ARM as supported architecture
Renato Golin [Tue, 26 Feb 2013 17:23:13 +0000 (17:23 +0000)]
Adding ARM as supported architecture

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

11 years agoProper XFAILs for ARMv7 / v5
Renato Golin [Tue, 26 Feb 2013 17:16:27 +0000 (17:16 +0000)]
Proper XFAILs for ARMv7 / v5

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

11 years agoFix PR15359.
Bill Schmidt [Tue, 26 Feb 2013 16:41:03 +0000 (16:41 +0000)]
Fix PR15359.

The PowerPC TLS relocation types were not previously added to the
necessary list in MCELFStreamer::fixSymbolsInTLSFixups().  Now they are!

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

11 years agoGCC 4.6.3 O3 miscompiles on ARM
Renato Golin [Tue, 26 Feb 2013 13:32:40 +0000 (13:32 +0000)]
GCC 4.6.3 O3 miscompiles on ARM

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

11 years agoUnify clang/llvm attributes for asan/tsan/msan (LLVM part)
Kostya Serebryany [Tue, 26 Feb 2013 06:58:09 +0000 (06:58 +0000)]
Unify clang/llvm attributes for asan/tsan/msan (LLVM part)

These are two related changes (one in llvm, one in clang).
LLVM:
- rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
- rename thread_safety => sanitize_thread
- rename no_uninitialized_checks -> sanitize_memory

CLANG:
- add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
- add __attribute__((no_sanitize_thread))
- add __attribute__((no_sanitize_memory))

for S in address thread memory
If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
set llvm attribute sanitize_S

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

11 years agoUse a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the...
Michael Ilseman [Tue, 26 Feb 2013 01:31:59 +0000 (01:31 +0000)]
Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%.

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

11 years ago[mips] Use class RegDefsUses to track register defs and uses.
Akira Hatanaka [Tue, 26 Feb 2013 01:30:05 +0000 (01:30 +0000)]
[mips] Use class RegDefsUses to track register defs and uses.

No functionality change.

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

11 years ago[fast-isel] Make sure the FastLowerArguments function checks to make sure the
Chad Rosier [Tue, 26 Feb 2013 01:05:31 +0000 (01:05 +0000)]
[fast-isel] Make sure the FastLowerArguments function checks to make sure the
arguments type is a simple type.
rdar://13290455

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

11 years agoRefine fix to PR10499, no functionality change
Michael Liao [Mon, 25 Feb 2013 23:16:36 +0000 (23:16 +0000)]
Refine fix to PR10499, no functionality change

- Put expensive checking after simple one

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

11 years agoFix PR10499
Michael Liao [Mon, 25 Feb 2013 23:01:03 +0000 (23:01 +0000)]
Fix PR10499

- Check whether SSE is available before lowering all 1s vector building with
  PCMPEQD, which is only available from SSE2

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