summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix the type of SubClassMask.Jakob Stoklund Olesen2012-05-031-1/+1
| | | | llvm-svn: 156084
* Compress tables for getMatchingSuperRegClass().Jakob Stoklund Olesen2012-05-031-19/+67
| | | | | | | | Many register classes only have a few super-registers, so it is not necessary to keep individual bit masks for all possible sub-register indices. llvm-svn: 156083
* Add the half type to the LLVM IR vim syntax highlighting.Owen Anderson2012-05-031-1/+1
| | | | llvm-svn: 156080
* Fixed disassembler for vstm/vldm ARM VFP instructions.Silviu Baranga2012-05-032-4/+33
| | | | llvm-svn: 156077
* Don't override subreg functions in targets without subregisters.Jakob Stoklund Olesen2012-05-032-44/+46
| | | | | | | | Some targets have no sub-registers at all. Use the TargetRegisterInfo versions of composeSubRegIndices(), getSubClassWithSubReg(), and getMatchingSuperRegClass() for those targets. llvm-svn: 156075
* Extensions of Hexagon V4 instructions.Sirish Pande2012-05-039-1339/+4107
| | | | | | This adds new instructions for Hexagon V4 architecture. llvm-svn: 156071
* replace 'break's with 'return 0' in visitCallInst code for objectsize, since ↵Nuno Lopes2012-05-031-5/+5
| | | | | | | | there is no need to fallback to visitCallSite. This gives a 0.9% in a test case llvm-svn: 156069
* Use correct variable in this example. Pointed out by waynix on IRC.Duncan Sands2012-05-031-1/+1
| | | | llvm-svn: 156067
* Use 'unsigned' instead of 'int' in a few places dealing with counts of ↵Craig Topper2012-05-031-3/+3
| | | | | | vector elements. llvm-svn: 156060
* Fix 256-bit vpshuflw and vpshufhw immediate encoding to handle undefs in the ↵Craig Topper2012-05-033-22/+37
| | | | | | lower half correctly. Missed in r155982. llvm-svn: 156059
* Fix two-address pass's aggressive instruction commuting heuristics. It's meantEvan Cheng2012-05-033-17/+28
| | | | | | | | | | | | | | | | | | | | | | to catch cases like: %reg1024<def> = MOV r1 %reg1025<def> = MOV r0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 By commuting ADD, it let coalescer eliminate all of the copies. However, there was a bug in the heuristics where it ended up commuting the ADD in: %reg1024<def> = MOV r0 %reg1025<def> = MOV 0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 That did no benefit but rather ensure the last MOV would not be coalesced. rdar://11355268 llvm-svn: 156048
* Added TargetRegisterInfo::getAllocatableClass.Andrew Trick2012-05-034-8/+45
| | | | | | | | | | The ensures that virtual registers always belong to an allocatable class. If your target attempts to create a vreg for an operand that has no allocatable register subclass, you will crash quickly. This ensures that targets define register classes as intended. llvm-svn: 156046
* Whitespace cleanup.Bill Wendling2012-05-021-87/+80
| | | | llvm-svn: 156034
* [docs] Include the Kaleidescope tutorial in the Sphinx docs build.Daniel Dunbar2012-05-0220-52/+26
| | | | llvm-svn: 156032
* Teach DAGCombine the same multiply-by-1.0 folding trick when doing FMAs, ↵Owen Anderson2012-05-022-0/+27
| | | | | | just like it now knows for FMULs. llvm-svn: 156029
* For Intel Atom, use ILP scheduling always, instead of ILP for 64 bitPreston Gurd2012-05-021-4/+4
| | | | | | | and Hybrid for 32 bit, since benchmarks show ILP scheduling is better most of the time. llvm-svn: 156028
* Change the Intel Atom detection code to recognizePreston Gurd2012-05-022-3/+5
| | | | | | Lincroft and Medfield. llvm-svn: 156025
* Teach DAG combine that multiplication by 1.0 can always be constant folded.Owen Anderson2012-05-022-0/+12
| | | | llvm-svn: 156023
* Add tools/lld to .gitignore.Michael J. Spencer2012-05-021-0/+2
| | | | llvm-svn: 156021
* ARM: Add missing two-operand VBIC aliases.Jim Grosbach2012-05-022-0/+7
| | | | llvm-svn: 156019
* Move llvm-tblgen's StringMatcher into the TableGen library so it canDouglas Gregor2012-05-026-4/+4
| | | | | | be used by clang-tblgen. llvm-svn: 156000
* [llvm-c] Make a few function declarations proper prototypesAnders Waldenborg2012-05-021-6/+6
| | | | | | | | | This avoids warnings when included in a application that uses -Wstrict-prototypes. e.g: AsmPrinters.def:27:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] llvm-svn: 155997
* This patch continues the work of adding instruction latencies for X86 Atom,Preston Gurd2012-05-024-68/+171
| | | | | | by providing the latencies for the instructions in X86InstrFPStack.td. llvm-svn: 155996
* Revert r155853Manman Ren2012-05-022-37/+0
| | | | | | | | The commit is intended to fix rdar://10961709. But it is the root cause of PR12720. Revert it for now. llvm-svn: 155992
* [tsan] typo and style (thanks to Nick Lewycky)Kostya Serebryany2012-05-021-9/+9
| | | | llvm-svn: 155986
* The value held in the vector may be RAUW'ed by some of the canonicalizationBill Wendling2012-05-022-2/+53
| | | | | | | methods. Use a weak value handle to keep up with this. PR12245 llvm-svn: 155984
* Disallow YIELD and other allocated nop hints in pre-ARMv6 architectures.Richard Barton2012-05-025-33/+26
| | | | llvm-svn: 155983
* Add support for selecting AVX2 vpshuflw and vpshufhw. Add decoding support ↵Craig Topper2012-05-025-36/+104
| | | | | | for AsmPrinter. llvm-svn: 155982
* Update SmallVector to support move semantics if the host does.John McCall2012-05-022-14/+231
| | | | | | | | | | | | | Note that support for rvalue references does not imply support for the full set of move-related STL operations. I've preserved support for an odd little thing in insert() where we're trying to support inserting a new element from an existing one. If we actually want to support that, there's a lot more we need to do: insert can call either grow or push_back, neither of which is safe against this particular use pattern. llvm-svn: 155979
* Fix unintentional use of operator bool.John McCall2012-05-021-1/+1
| | | | llvm-svn: 155978
* Fix the implementation of MachOObjectFile::isSectionZeroInit so it follows ↵Eli Friedman2012-05-021-4/+6
| | | | | | the MachO spec. llvm-svn: 155976
* Tidy up. Naming conventions.Jim Grosbach2012-05-011-16/+16
| | | | llvm-svn: 155960
* Remove unneeded break.Jakub Staszak2012-05-011-1/+0
| | | | llvm-svn: 155959
* Use dyn_cast instead of checking opcode and cast.Jakub Staszak2012-05-011-2/+1
| | | | llvm-svn: 155957
* Remove trailing spaces.Jakub Staszak2012-05-011-43/+43
| | | | llvm-svn: 155956
* Strip the pointer casts off of allocas so that the selection DAG can find them.Bill Wendling2012-05-012-1/+18
| | | | | | PR10799 llvm-svn: 155954
* Target independent Hexagon Packetizer fix.Sirish Pande2012-05-012-67/+68
| | | | llvm-svn: 155947
* ARM: Add a few missing add->sub aliases w/ 'w' suffix.Jim Grosbach2012-05-012-0/+23
| | | | | | | | | | | | | | Aliases for adding a negative immediate when using an explicit 'w' suffix. E.g., adds.w r2, #-16 adds.w r2, r2, #-16 addw r2, #-16 addw r2, #-16 addw r2, r2, #-16 rdar://11330769 llvm-svn: 155946
* ARM: allow vanilla expressions for movw/movt.Jim Grosbach2012-05-012-4/+21
| | | | | | | | | | Expressions for movw/movt don't always have an :upper16: or :lower16: on them and that's ok. When they don't, it's just a plain [0-65536] immediate result, effectively the same as a :lower16: variant kind. rdar://10550147 llvm-svn: 155941
* This patch marks the X86 floating point stack registers ST0-ST7 as reservedPreston Gurd2012-05-011-0/+10
| | | | | | | | | in order to avoid assertion failures in the register scavenger. The assertion failures were “Bad machine code: Using an undefined physical register” and “Bad machine code: MBB exits via unconditional fall-through but its successor differs from its CFG successor!”. llvm-svn: 155930
* MC: Unknown assembler directives are now hard errors.Jim Grosbach2012-05-013-4/+4
| | | | | | | | | | | | | | | | Previously, an unsupported/unknown assembler directive issued a warning. That's generally unsafe, and inconsistent with the behaviour of pretty much every system assembler. Now that the MC assemblers are mature enough to be the default on multiple targets, it's reasonable to issue errors for these. For target or platform directives that need to stay warnings, we should add explicit handlers for them in, e.g., ELFAsmParser.cpp, DarwinAsmParser.cpp, et. al., and issue the warning there. rdar://9246275 llvm-svn: 155926
* MC: Remove errant EatToEndOfStatement() in asm parser.Jim Grosbach2012-05-011-3/+1
| | | | | | | | | | | | The caller is already responsible for eating any additional input on the line. Putting an additional EatToEndOfStatement() in ParseStatement() causes an entire extra statement to be consumed when treating warnings as errors. For example, test/MC/macros.s will assert() because the .endmacro directive is missed as a result. rdar://11355843 llvm-svn: 155925
* X86: optimization for max-like structManman Ren2012-05-012-0/+82
| | | | | | | | | | | | | | | | | | | | | | | This patch will optimize the following cases on X86 (a > b) ? (a-b) : 0 (a >= b) ? (a-b) : 0 (b < a) ? (a-b) : 0 (b <= a) ? (a-b) : 0 FROM movl %edi, %ecx subl %esi, %ecx cmpl %edi, %esi movl $0, %eax cmovll %ecx, %eax TO xorl %eax, %eax subl %esi, %edi cmovll %eax, %edi movl %edi, %eax rdar: 10734411 llvm-svn: 155919
* X86: Use StackRegister instead of FrameRegister in getFrameIndexReference ↵Alexey Samsonov2012-05-013-0/+56
| | | | | | (to generate debug info for local variables) if stack needs realignment llvm-svn: 155917
* Move MipsDisassembler classes into an anonymous namespace.Benjamin Kramer2012-05-011-0/+4
| | | | llvm-svn: 155915
* Regression test for PR2960.Jay Foad2012-05-011-0/+13
| | | | llvm-svn: 155912
* Value-initialize global to avoid global construction.Benjamin Kramer2012-05-011-2/+2
| | | | llvm-svn: 155909
* RuntimeDyld cleanup:Eli Bendersky2012-05-014-65/+77
| | | | | | | | | | | - Improved parameter names for clarity - Added comments - emitCommonSymbols should return void because its return value is not being used anywhere - Attempt to reduce the usage of the RelocationValueRef type. Restricts it for a single goal and may serve as a step for eventual removal. llvm-svn: 155908
* YAMLParser: get rid of global ctors & dtors.Benjamin Kramer2012-05-012-13/+18
| | | | llvm-svn: 155907
* Change the PassManager from a reference to a pointer.Bill Wendling2012-05-0113-71/+69
| | | | | | | | | The TargetPassManager's default constructor wants to initialize the PassManager to 'null'. But it's illegal to bind a null reference to a null l-value. Make the ivar a pointer instead. PR12468 llvm-svn: 155902
OpenPOWER on IntegriCloud