oota-llvm.git
11 years agoRemove store forms of DEC/INC from isDefConvertible. Since they are stores they don...
Craig Topper [Mon, 17 Dec 2012 04:55:07 +0000 (04:55 +0000)]
Remove store forms of DEC/INC from isDefConvertible. Since they are stores they don't have a register def.

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

11 years agoFix the first part of PR14478: memset now works.
Chandler Carruth [Mon, 17 Dec 2012 04:07:37 +0000 (04:07 +0000)]
Fix the first part of PR14478: memset now works.

PR14478 highlights a serious problem in SROA that simply wasn't being
exercised due to a lack of vector input code mixed with C-library
function calls. Part of SROA was written carefully to handle subvector
accesses via memset and memcpy, but the rewriter never grew support for
this. Fixing it required refactoring the subvector access code in other
parts of SROA so it could be shared, and then fixing the splat formation
logic and using subvector insertion (this patch).

The PR isn't quite fixed yet, as memcpy is still broken in the same way.
I'm starting on that series of patches now.

Hopefully this will be enough to bring the bullet benchmark back to life
with the bb-vectorizer enabled, but that may require fixing memcpy as
well.

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

11 years agoExtract the logic for inserting a subvector into a vector alloca.
Chandler Carruth [Mon, 17 Dec 2012 04:07:35 +0000 (04:07 +0000)]
Extract the logic for inserting a subvector into a vector alloca.

No functionality changed. Another step of refactoring toward solving
PR14487.

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

11 years agoLift the integer splat computation into a helper function.
Chandler Carruth [Mon, 17 Dec 2012 04:07:30 +0000 (04:07 +0000)]
Lift the integer splat computation into a helper function.

No functionality changed. Refactoring leading up to the fix for PR14478
which requires some significant changes to the memset and memcpy
rewriting.

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

11 years agoAdd debug prints for when optimizeLoadInstr folds a load.
Craig Topper [Mon, 17 Dec 2012 03:56:00 +0000 (03:56 +0000)]
Add debug prints for when optimizeLoadInstr folds a load.

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

11 years agoAdd tests for disassembly of 1r XCore instructions.
Richard Osborne [Sun, 16 Dec 2012 18:06:30 +0000 (18:06 +0000)]
Add tests for disassembly of 1r XCore instructions.

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

11 years agoAdd instruction encodings and disassembly for 1r instructions.
Richard Osborne [Sun, 16 Dec 2012 17:37:34 +0000 (17:37 +0000)]
Add instruction encodings and disassembly for 1r instructions.

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

11 years agoAdd XCore disassembler.
Richard Osborne [Sun, 16 Dec 2012 17:29:14 +0000 (17:29 +0000)]
Add XCore disassembler.

Currently there is no instruction encoding info and
XCoreDisassembler::getInstruction() always returns Fail. I intend to add
instruction encodings and tests in follow on commits.

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

11 years agoRemove invalid instruction encodings.
Richard Osborne [Sun, 16 Dec 2012 16:46:31 +0000 (16:46 +0000)]
Remove invalid instruction encodings.

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

11 years agoMark anything deriving from PseudoInstXCore as a pseudo instruction.
Richard Osborne [Sun, 16 Dec 2012 16:46:28 +0000 (16:46 +0000)]
Mark anything deriving from PseudoInstXCore as a pseudo instruction.

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

11 years agoSet instruction size correctly in XCoreInstrFormats.td
Richard Osborne [Sun, 16 Dec 2012 16:46:24 +0000 (16:46 +0000)]
Set instruction size correctly in XCoreInstrFormats.td

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

11 years agoChange XCoreAsmPrinter to lower MachineInstrs to MCInsts before emission.
Richard Osborne [Sun, 16 Dec 2012 16:20:48 +0000 (16:20 +0000)]
Change XCoreAsmPrinter to lower MachineInstrs to MCInsts before emission.

This change adds XCoreMCInstLower to do the lowering to MCInst and
XCoreInstPrinter to print the MCInsts.

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

11 years agoReplace ${:comment} with the comment symbol.
Richard Osborne [Sun, 16 Dec 2012 15:59:02 +0000 (15:59 +0000)]
Replace ${:comment} with the comment symbol.

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

11 years agoDeclare class DwarfDebug before use instead of relying on a forward declaration
Dmitri Gribenko [Sun, 16 Dec 2012 12:57:36 +0000 (12:57 +0000)]
Declare class DwarfDebug before use instead of relying on a forward declaration
from some other unrelated header.

Patch by Kai.

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

11 years agoMCPureStreamer.cpp: Try to fix build, pruning EmitDebugLabel().
NAKAMURA Takumi [Sun, 16 Dec 2012 04:23:20 +0000 (04:23 +0000)]
MCPureStreamer.cpp: Try to fix build, pruning EmitDebugLabel().

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

11 years agoThis patch is needed to make c++ exceptions work for mips16.
Reed Kotler [Sun, 16 Dec 2012 04:00:45 +0000 (04:00 +0000)]
This patch is needed to make c++ exceptions work for mips16.

Mips16 is really a processor decoding mode (ala thumb 1) and in the same
program, mips16 and mips32 functions can exist and can call each other.

If a jal type instruction encounters an address with the lower bit set, then
the processor switches to mips16 mode (if it is not already in it). If the
lower bit is not set, then it switches to mips32 mode.

The linker knows which functions are mips16 and which are mips32.
When relocation is performed on code labels, this lower order bit is
set if the code label is a mips16 code label.

In general this works just fine, however when creating exception handling
tables and dwarf, there are cases where you don't want this lower order
bit added in.

This has been traditionally distinguished in gas assembly source by using a
different syntax for the label.

lab1:      ; this will cause the lower order bit to be added
lab2=.     ; this will not cause the lower order bit to be added

In some cases, it does not matter because in dwarf and debug tables
the difference of two labels is used and in that case the lower order
bits subtract each other out.

To fix this, I have added to mcstreamer the notion of a debuglabel.
The default is for label and debug label to be the same. So calling
EmitLabel and EmitDebugLabel produce the same result.

For various reasons, there is only one set of labels that needs to be
modified for the mips exceptions to work. These are the "$eh_func_beginXXX"
labels.

Mips overrides the debug label suffix from ":" to "=." .

This initial patch fixes exceptions. More changes most likely
will be needed to DwarfCFException to make all of this work
for actual debugging. These changes will be to emit debug labels in some
places where a simple label is emitted now.

Some historical discussion on this from gcc can be found at:
http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00623.html
http://gcc.gnu.org/ml/gcc-patches/2008-11/msg01273.html

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

11 years agoX86: Add a couple of target-specific dag combines that turn VSELECTS into psubus...
Benjamin Kramer [Sat, 15 Dec 2012 16:47:44 +0000 (16:47 +0000)]
X86: Add a couple of target-specific dag combines that turn VSELECTS into psubus if possible.

We match the pattern "x >= y ? x-y : 0" into "subus x, y" and two special cases
if y is a constant. DAGCombiner canonicalizes those so we first have to undo the
canonicalization for those cases. The pattern occurs in gzip when the loop
vectorizer is enabled. Part of PR14613.

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

11 years agoAdd a corollary test for PR14572. We got this code path correct already.
Chandler Carruth [Sat, 15 Dec 2012 09:31:54 +0000 (09:31 +0000)]
Add a corollary test for PR14572. We got this code path correct already.

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

11 years agoRelax an overly aggressive assert to fix PR14572.
Chandler Carruth [Sat, 15 Dec 2012 09:26:06 +0000 (09:26 +0000)]
Relax an overly aggressive assert to fix PR14572.

The alloca width is based on the alloc size, not the type size.

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

11 years agoMake '-mtune=x86_64' assume fast unaligned memory accesses.
Chandler Carruth [Sat, 15 Dec 2012 09:01:13 +0000 (09:01 +0000)]
Make '-mtune=x86_64' assume fast unaligned memory accesses.

Not all chips targeted by x86_64 have this feature, but a dramatically
increasing number do. Specifying a chip-specific tuning parameter will
continue to turn the feature on or off as appropriate for that
particular chip, but the generic flag should try to achieve the best
performance on the most widely available hardware. Today, the number of
chips with fast UA access dwarfs those without in the x86-64 space.

Note that this also brings LLVM's code generation for this '-march' flag
more in line with that of modern GCCs. Reviewed by Dan Gohman.

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

11 years agoActually update the grammar of this sentence to reflect the removal of CellSPU.
Chandler Carruth [Sat, 15 Dec 2012 08:56:20 +0000 (08:56 +0000)]
Actually update the grammar of this sentence to reflect the removal of CellSPU.

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

11 years agoRevert r170246, "Enable the loop vectorizer by default."
NAKAMURA Takumi [Sat, 15 Dec 2012 06:11:13 +0000 (06:11 +0000)]
Revert r170246, "Enable the loop vectorizer by default."

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

11 years agoThis code implements most of mips16 hardfloat as it is done by gcc.
Reed Kotler [Sat, 15 Dec 2012 00:20:05 +0000 (00:20 +0000)]
This code implements most of mips16 hardfloat as it is done by gcc.
In this case, essentially it is soft float with different library routines.
The next step will be to make this fully interoperational with mips32 floating
point and that requires creating stubs for functions with signatures that
contain floating point types.

I have a more sophisticated design for mips16 hardfloat which I hope to
implement at a later time that directly does floating point without the need
for function calls.

The mips16 encoding has no floating point instructions so one needs to
switch to mips32 mode to execute floating point instructions.

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

11 years agoTo simplify some code move the unit emission into the holders.
Eric Christopher [Sat, 15 Dec 2012 00:04:07 +0000 (00:04 +0000)]
To simplify some code move the unit emission into the holders.
Make emitDIE public accordingly. No functional change.

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

11 years agoUse begin and end label names from the section for info.
Eric Christopher [Sat, 15 Dec 2012 00:04:04 +0000 (00:04 +0000)]
Use begin and end label names from the section for info.

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

11 years agoMake sure the alternate PC+imm syntax of LDR instruction with a small
Kevin Enderby [Fri, 14 Dec 2012 23:04:25 +0000 (23:04 +0000)]
Make sure the alternate PC+imm syntax of LDR instruction with a small
immediate generates the narrow version.  Needed when doing round-trip
assemble/disassemble testing using the alternate syntax that specifies
'pc' directly.

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

11 years agoAdd back FoldOpIntoPhi optimizations with fix. Included test cases to help catch...
Michael Ilseman [Fri, 14 Dec 2012 22:08:26 +0000 (22:08 +0000)]
Add back FoldOpIntoPhi optimizations with fix. Included test cases to help catch these errors and to test the presence of the optimization itself

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

11 years agoEnable the loop vectorizer by default.
Nadav Rotem [Fri, 14 Dec 2012 21:30:23 +0000 (21:30 +0000)]
Enable the loop vectorizer by default.

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

11 years agoTypeLegalizer: Do not generate target specific nodes with illegal types, because...
Nadav Rotem [Fri, 14 Dec 2012 21:20:37 +0000 (21:20 +0000)]
TypeLegalizer: Do not generate target specific nodes with illegal types, because we cant type-legalize them.

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

11 years agoRelease notes for dragonegg 3.2.
Duncan Sands [Fri, 14 Dec 2012 21:10:59 +0000 (21:10 +0000)]
Release notes for dragonegg 3.2.

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

11 years agoFix a crash in ValueTracking on vectors of pointers.
Nadav Rotem [Fri, 14 Dec 2012 20:43:49 +0000 (20:43 +0000)]
Fix a crash in ValueTracking on vectors of pointers.

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

11 years agoThis patch removes some nondeterminism from direct object file output
Bill Schmidt [Fri, 14 Dec 2012 20:28:38 +0000 (20:28 +0000)]
This patch removes some nondeterminism from direct object file output
for TLS dynamic models on 64-bit PowerPC ELF.  The default sort routine
for relocations only sorts on the r_offset field; but with TLS, there
can be two relocations with the same r_offset.  For PowerPC, this patch
sorts secondarily on descending r_type, which matches the behavior
expected by the linker.

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

11 years agoAdd more reset methods to make all objects that the backend may use for outputting...
Pedro Artigas [Fri, 14 Dec 2012 18:52:11 +0000 (18:52 +0000)]
Add more reset methods to make all objects that the backend may use for outputting code have a reset, some are not used but were declared for completeness

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

11 years agordar://12753946
Shuxin Yang [Fri, 14 Dec 2012 18:46:06 +0000 (18:46 +0000)]
rdar://12753946

Implement rule : "x * (select cond 1.0, 0.0) -> select cond x, 0.0"

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

11 years ago[CMake] Move libxml2 stuff from clang to llvm/cmake.
NAKAMURA Takumi [Fri, 14 Dec 2012 18:30:20 +0000 (18:30 +0000)]
[CMake] Move libxml2 stuff from clang to llvm/cmake.

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

11 years agoThis patch improves the 64-bit PowerPC InitialExec TLS support by providing
Bill Schmidt [Fri, 14 Dec 2012 17:02:38 +0000 (17:02 +0000)]
This patch improves the 64-bit PowerPC InitialExec TLS support by providing
for a wider range of GOT entries that can hold thread-relative offsets.
This matches the behavior of GCC, which was not documented in the PPC64 TLS
ABI.  The ABI will be updated with the new code sequence.

Former sequence:

  ld 9,x@got@tprel(2)
  add 9,9,x@tls

New sequence:

  addis 9,2,x@got@tprel@ha
  ld 9,x@got@tprel@l(9)
  add 9,9,x@tls

Note that a linker optimization exists to transform the new sequence into
the shorter sequence when appropriate, by replacing the addis with a nop
and modifying the base register and relocation type of the ld.

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

11 years agoFix lint warnings in MemorySanitizer.cpp.
Evgeniy Stepanov [Fri, 14 Dec 2012 13:48:31 +0000 (13:48 +0000)]
Fix lint warnings in MemorySanitizer.cpp.

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

11 years agoThe CellSPU backend is more than experimental, it's dead now...
Chandler Carruth [Fri, 14 Dec 2012 13:44:05 +0000 (13:44 +0000)]
The CellSPU backend is more than experimental, it's dead now...

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

11 years agoRemove a section that was in 3.1's notes.
Chandler Carruth [Fri, 14 Dec 2012 13:43:59 +0000 (13:43 +0000)]
Remove a section that was in 3.1's notes.

Just give a shout if this was actually still important....

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

11 years ago[msan] Origin stores and loads do not need explicit alignment.
Evgeniy Stepanov [Fri, 14 Dec 2012 13:43:11 +0000 (13:43 +0000)]
[msan] Origin stores and loads do not need explicit alignment.

Origin address is always 4 byte aligned, and the access type is always i32.

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

11 years agoRemove several entries from the 3.2 release notes that were in the 3.1
Chandler Carruth [Fri, 14 Dec 2012 13:41:02 +0000 (13:41 +0000)]
Remove several entries from the 3.2 release notes that were in the 3.1
release notes already. =]

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

11 years agoFix the order of these sections of the release notes.
Chandler Carruth [Fri, 14 Dec 2012 13:37:18 +0000 (13:37 +0000)]
Fix the order of these sections of the release notes.

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

11 years agoAdd a rough draft of some content about the new SROA. I'll try to proof
Chandler Carruth [Fri, 14 Dec 2012 13:37:17 +0000 (13:37 +0000)]
Add a rough draft of some content about the new SROA. I'll try to proof
read this and clean it up tomorrow, but hopefully it's a good
placeholder.

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

11 years agoDelete a long-stale "if its ready" comment. All indications is that this
Chandler Carruth [Fri, 14 Dec 2012 13:37:12 +0000 (13:37 +0000)]
Delete a long-stale "if its ready" comment. All indications is that this
will look a bit different when we have time to get it ready to turn on,
and we won't likely need this reminder.

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

11 years agoProvide some actual highlight bullets for Clang.
Chandler Carruth [Fri, 14 Dec 2012 13:22:57 +0000 (13:22 +0000)]
Provide some actual highlight bullets for Clang.

If anyone has better highlights (I'm obviously biased by the things that
I'm excited about) jump in and add them!

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

11 years ago[msan] Refactor default shadow propagation and origin tracking.
Evgeniy Stepanov [Fri, 14 Dec 2012 12:54:18 +0000 (12:54 +0000)]
[msan] Refactor default shadow propagation and origin tracking.

This change moves the code for default shadow propagaition (handleShadowOr)
and origin tracking (setOriginForNaryOp) into a new builder-like class. Also
gets rid of handleShadowOrBinary.

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

11 years agoChange TargetLowering::getLoadExtAction to take an MVT, instead of
Patrik Hagglund [Fri, 14 Dec 2012 09:05:13 +0000 (09:05 +0000)]
Change TargetLowering::getLoadExtAction to take an MVT, instead of
EVT.

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

11 years agorevert r170166 - disable the loop vectorizer.
Nadav Rotem [Fri, 14 Dec 2012 01:57:00 +0000 (01:57 +0000)]
revert r170166 - disable the loop vectorizer.

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

11 years agoEnable the loop vectorizer.
Nadav Rotem [Fri, 14 Dec 2012 00:30:34 +0000 (00:30 +0000)]
Enable the loop vectorizer.

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

11 years agoDisable the loop vectorizer.
Nadav Rotem [Fri, 14 Dec 2012 00:02:07 +0000 (00:02 +0000)]
Disable the loop vectorizer.

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

11 years agoUse the new MI bundling API in MachineInstrBundle itself.
Jakob Stoklund Olesen [Thu, 13 Dec 2012 23:23:46 +0000 (23:23 +0000)]
Use the new MI bundling API in MachineInstrBundle itself.

The new API is higher level than just manipulating the bundle flags
directly, and the setIsInsideBundle() function will disappear soon.

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

11 years agoRemove two popcount patterns which we are already able to recognize.
Shuxin Yang [Thu, 13 Dec 2012 23:16:19 +0000 (23:16 +0000)]
Remove two popcount patterns which we are already able to recognize.

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

11 years agoEnable the Loop Vectorizer by default for O2 and O3. Disable if-conversion by default...
Nadav Rotem [Thu, 13 Dec 2012 23:11:54 +0000 (23:11 +0000)]
Enable the Loop Vectorizer by default for O2 and O3. Disable if-conversion by default. I plan to revert this patch later today.

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

11 years agoDebug Info: add support to mark member variables as artificial
David Blaikie [Thu, 13 Dec 2012 22:43:07 +0000 (22:43 +0000)]
Debug Info: add support to mark member variables as artificial

This is the LLVM portion of r170154.

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

11 years agofix comment.
Chris Lattner [Thu, 13 Dec 2012 22:34:43 +0000 (22:34 +0000)]
fix comment.

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

11 years agoThis is another cleanup patch for 64-bit PowerPC TLS processing. I had
Bill Schmidt [Thu, 13 Dec 2012 20:57:10 +0000 (20:57 +0000)]
This is another cleanup patch for 64-bit PowerPC TLS processing.  I had
some hackery in place that hid my poor use of TblGen, which I've now sorted
out and cleaned up.  No change in observable behavior, so no new test cases.

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

11 years agoChange TargetLowering::setTypeAction to take an MVT, instead fo EVT.
Patrik Hagglund [Thu, 13 Dec 2012 20:42:43 +0000 (20:42 +0000)]
Change TargetLowering::setTypeAction to take an MVT, instead fo EVT.

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

11 years agodocs: Improve discussion of syntax highlighting.
Sean Silva [Thu, 13 Dec 2012 20:14:25 +0000 (20:14 +0000)]
docs: Improve discussion of syntax highlighting.

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

11 years agoDocumentation: CompilerWriterInfo.rst: update link to Intel documentation
Dmitri Gribenko [Thu, 13 Dec 2012 20:02:11 +0000 (20:02 +0000)]
Documentation: CompilerWriterInfo.rst: update link to Intel documentation

Replaces old Pentium 4 documentation link with generic current documentation link.

Patch by Kevin Schoedel.

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

11 years agoFix warnings with -DNDEBUG
Tom Stellard [Thu, 13 Dec 2012 19:38:52 +0000 (19:38 +0000)]
Fix warnings with -DNDEBUG

Patch by: NAKAMURA Takumi

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

11 years agoThis is just a clean-up patch that simplifies the initial-exec TLS logic by
Bill Schmidt [Thu, 13 Dec 2012 18:45:54 +0000 (18:45 +0000)]
This is just a clean-up patch that simplifies the initial-exec TLS logic by
avoiding use of machine operand flags.  No change in observable behavior, so
no new test cases.

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

11 years agoChange TargetLowering::getRepRegClassFor to take an MVT, instead of
Patrik Hagglund [Thu, 13 Dec 2012 18:45:35 +0000 (18:45 +0000)]
Change TargetLowering::getRepRegClassFor to take an MVT, instead of
EVT.

Accordingly, change RegDefIter to contain MVTs instead of EVTs.

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

11 years agoAdd options to disable building of ARCMT, Rewriter and Static Analyzer
Roman Divacky [Thu, 13 Dec 2012 16:07:19 +0000 (16:07 +0000)]
Add options to disable building of ARCMT, Rewriter and Static Analyzer
in clang. The default remains to build those.

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

11 years agoFix spelling
Joel Jones [Thu, 13 Dec 2012 15:25:07 +0000 (15:25 +0000)]
Fix spelling

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

11 years agoJITEventListener.h: Use llvm-config.h instead of config.h.
NAKAMURA Takumi [Thu, 13 Dec 2012 15:03:38 +0000 (15:03 +0000)]
JITEventListener.h: Use llvm-config.h instead of config.h.

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

11 years agoRevert r170020, "Simplify negated bit test", for now.
NAKAMURA Takumi [Thu, 13 Dec 2012 14:28:16 +0000 (14:28 +0000)]
Revert r170020, "Simplify negated bit test", for now.

This assumes (1 << n) is always not zero. Consider n is greater than word size.
Although I know it is undefined, this transforms undefined behavior hidden.

This led clang unexpected behavior with some failures. I will investigate to fix undefined shl in clang.

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

11 years agoAdd a dummy documentation file to unbreak 'make install'. We need to find how
Dmitri Gribenko [Thu, 13 Dec 2012 13:37:35 +0000 (13:37 +0000)]
Add a dummy documentation file to unbreak 'make install'.  We need to find how
to package reST-formatted documentation.

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

11 years agoRevert "Restore the PHI optimization I accidently removed" temporarily since
Eric Christopher [Thu, 13 Dec 2012 06:48:05 +0000 (06:48 +0000)]
Revert "Restore the PHI optimization I accidently removed" temporarily since
it seems to be breaking self-host for a few people and is PR14592.

This reverts commit r170024.

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

11 years agoRevert "Add a funciton to get the segment name of a section."
Eric Christopher [Thu, 13 Dec 2012 06:36:18 +0000 (06:36 +0000)]
Revert "Add a funciton to get the segment name of a section."

This reverts commit r170095 since it appears to be breaking the bots.

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

11 years agoChange TargetLowering::getRegClassFor to take an MVT, instead of EVT.
Patrik Hagglund [Thu, 13 Dec 2012 06:34:11 +0000 (06:34 +0000)]
Change TargetLowering::getRegClassFor to take an MVT, instead of EVT.

Accordingly, add helper funtions getSimpleValueType (in parallel to
getValueType) in SDValue, SDNode, and TargetLowering.

This is the first, in a series of patches.

This is the second attempt. In the first attempt (r169837), a few
getSimpleVT() were hoisted too far, detected by bootstrap failures.

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

11 years agoAdd a funciton to get the segment name of a section.
Rafael Espindola [Thu, 13 Dec 2012 04:07:18 +0000 (04:07 +0000)]
Add a funciton to get the segment name of a section.

On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one,
anonymous, segment.

This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be informing
the linker with segment this section should go to.

The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.

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

11 years agoMissed these calls from the previous rename somehow.
Rafael Espindola [Thu, 13 Dec 2012 03:42:31 +0000 (03:42 +0000)]
Missed these calls from the previous rename somehow.

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

11 years agoRename isPowerOfTwo to isKnownToBeAPowerOfTwo.
Rafael Espindola [Thu, 13 Dec 2012 03:37:24 +0000 (03:37 +0000)]
Rename isPowerOfTwo to isKnownToBeAPowerOfTwo.

In a previous thread it was pointed out that isPowerOfTwo is not a very precise
name since it can return false for powers of two if it is unable to show that
they are powers of two.

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

11 years ago[mips] Do not copy GOT address to register $gp if the function being called has
Akira Hatanaka [Thu, 13 Dec 2012 03:17:29 +0000 (03:17 +0000)]
[mips] Do not copy GOT address to register $gp if the function being called has
internal linkage.

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

11 years agoPattern matching code for intrinsics.
Michael Ilseman [Thu, 13 Dec 2012 03:13:36 +0000 (03:13 +0000)]
Pattern matching code for intrinsics.

Provides m_Argument that allows matching against a CallSite's specified argument. Provides m_Intrinsic pattern that can be templatized over the intrinsic id and bind/match arguments similarly to other pattern matchers. Implementations provided for 0 to 4 arguments, though it's very simple to extend for more. Also provides example template specialization for bswap (m_BSwap) and example of code cleanup for its use.

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

11 years agoRemove extraneous debugging code.
Eric Christopher [Thu, 13 Dec 2012 03:07:28 +0000 (03:07 +0000)]
Remove extraneous debugging code.

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

11 years agoUse default label name for a section in emitting abbreviation
Eric Christopher [Thu, 13 Dec 2012 03:00:38 +0000 (03:00 +0000)]
Use default label name for a section in emitting abbreviation
section to help prep some code to be split about.

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

11 years agoAdd a way of printing out an arbitrary label name for a section
Eric Christopher [Thu, 13 Dec 2012 03:00:35 +0000 (03:00 +0000)]
Add a way of printing out an arbitrary label name for a section
given the section.

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

11 years agom_CombineOr and m_CombineAnd pattern combinators
Michael Ilseman [Thu, 13 Dec 2012 02:55:53 +0000 (02:55 +0000)]
m_CombineOr and m_CombineAnd pattern combinators

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

11 years agoDefine getHostCPUFeatures for ARM Linux platform
Hao Liu [Thu, 13 Dec 2012 02:40:20 +0000 (02:40 +0000)]
Define getHostCPUFeatures for ARM Linux platform

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

11 years ago[mips] Delete all floating point instruction classes that are no longer used.
Akira Hatanaka [Thu, 13 Dec 2012 02:05:02 +0000 (02:05 +0000)]
[mips] Delete all floating point instruction classes that are no longer used.

No functionality change.

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

11 years agoMake this Lit config file a bit slimmer
Eli Bendersky [Thu, 13 Dec 2012 02:03:46 +0000 (02:03 +0000)]
Make this Lit config file a bit slimmer

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

11 years ago[mips] Modify definitions of floating point conditional move instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:41:15 +0000 (01:41 +0000)]
[mips] Modify definitions of floating point conditional move instructions.

No functionality change.

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

11 years agoFix a bug in DAGCombiner::MatchBSwapHWord. Make sure the node has operands before...
Evan Cheng [Thu, 13 Dec 2012 01:34:32 +0000 (01:34 +0000)]
Fix a bug in DAGCombiner::MatchBSwapHWord. Make sure the node has operands before referencing them. rdar://12868039

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

11 years ago[mips] Modify definitions of floating point comparison instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:34:09 +0000 (01:34 +0000)]
[mips] Modify definitions of floating point comparison instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point branch instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:32:36 +0000 (01:32 +0000)]
[mips] Modify definitions of floating point branch instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point indexed load and store instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:30:49 +0000 (01:30 +0000)]
[mips] Modify definitions of floating point indexed load and store instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point multiply-add/sub instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:27:48 +0000 (01:27 +0000)]
[mips] Modify definitions of floating point multiply-add/sub instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of floating point load and store instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:24:00 +0000 (01:24 +0000)]
[mips] Modify definitions of floating point load and store instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of move from/to coprocessor instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:16:49 +0000 (01:16 +0000)]
[mips] Modify definitions of move from/to coprocessor instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of two register operand floating point instructions.
Akira Hatanaka [Thu, 13 Dec 2012 01:14:07 +0000 (01:14 +0000)]
[mips] Modify definitions of two register operand floating point instructions.

No functionality change.

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

11 years ago[mips] Modify definitions of three register operand floating point instructions
Akira Hatanaka [Thu, 13 Dec 2012 01:07:37 +0000 (01:07 +0000)]
[mips] Modify definitions of three register operand floating point instructions
and separate encoding information from the rest.

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

11 years agoTake into account minimize size attribute in the inliner.
Quentin Colombet [Thu, 13 Dec 2012 01:05:25 +0000 (01:05 +0000)]
Take into account minimize size attribute in the inliner.

Better controls the inlining of functions when the caller function has MinSize attribute.
Basically, when the caller function has this attribute, we do not "force" the inlining
of callee functions carrying the InlineHint attribute (i.e., functions defined with
inline keyword)

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

11 years agoAvoid setIsInsideBundle in Target/R600.
Jakob Stoklund Olesen [Thu, 13 Dec 2012 00:59:38 +0000 (00:59 +0000)]
Avoid setIsInsideBundle in Target/R600.

This function is going to be removed.

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

11 years agoExpress prepend and append in terms of a more generic insert().
Jakob Stoklund Olesen [Thu, 13 Dec 2012 00:59:36 +0000 (00:59 +0000)]
Express prepend and append in terms of a more generic insert().

Also add an MIBundleBuilder constructor that takes an existing bundle.
Together these functions make it possible to add instructions to
existing bundles.

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

11 years ago[mips] Move classes that do not belong in MipsInstrFormats.td into
Akira Hatanaka [Thu, 13 Dec 2012 00:49:23 +0000 (00:49 +0000)]
[mips] Move classes that do not belong in MipsInstrFormats.td into
MipsInstrFPU.td.

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

11 years ago[mips] Set isCommutable flag in a more explicit way.
Akira Hatanaka [Thu, 13 Dec 2012 00:46:23 +0000 (00:46 +0000)]
[mips] Set isCommutable flag in a more explicit way.

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

11 years ago[mips] Remove fmt from the parameter list of classes FMADDSUB and FNMADDSUB.
Akira Hatanaka [Thu, 13 Dec 2012 00:38:59 +0000 (00:38 +0000)]
[mips] Remove fmt from the parameter list of classes FMADDSUB and FNMADDSUB.

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

11 years ago[mips] Remove single-precision floating point instruction from multiclass
Akira Hatanaka [Thu, 13 Dec 2012 00:35:54 +0000 (00:35 +0000)]
[mips] Remove single-precision floating point instruction from multiclass
FFR2P_M.

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

11 years ago[mips] Move class IsCommutable into MipsInstrInfo.td.
Akira Hatanaka [Thu, 13 Dec 2012 00:32:01 +0000 (00:32 +0000)]
[mips] Move class IsCommutable into MipsInstrInfo.td.

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