summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix ARM codegen breakage caused by r138653.Owen Anderson2011-08-261-6/+15
| | | | llvm-svn: 138657
* Whitespace and 80-col.Eric Christopher2011-08-261-40/+43
| | | | llvm-svn: 138654
* invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons. We ↵Owen Anderson2011-08-266-19/+96
| | | | | | were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts. Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits. This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure. llvm-svn: 138653
* Don't sink landingpad instructions during ind-var simplification.Bill Wendling2011-08-261-0/+4
| | | | llvm-svn: 138651
* Update for feedback from Jim.Owen Anderson2011-08-261-3/+3
| | | | llvm-svn: 138642
* ARMDisassembler: Always return a size, even when disassembling fails.Benjamin Kramer2011-08-261-3/+11
| | | | | | This should fix PR10772. llvm-svn: 138636
* Support an extension of ARM asm syntax to allow immediate operands to ADR ↵Owen Anderson2011-08-263-17/+36
| | | | | | instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here. llvm-svn: 138635
* Don't insert branch hint lables that are never used. Kalle Raiskila2011-08-262-23/+0
| | | | llvm-svn: 138630
* Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT ↵Owen Anderson2011-08-261-0/+2
| | | | | | | | instructions when decoding their successors. This is the last disassembly crash detected by exhaustive Thumb2 instruction space. Major thanks to Chandler Carruth for making this kind of exhaustive testing possible. llvm-svn: 138625
* Fix disassembling of VCVTSD2SICraig Topper2011-08-261-10/+4
| | | | llvm-svn: 138623
* LoopInfo::updateUnloop fix, and verify Block->Loop maps.Andrew Trick2011-08-261-2/+13
| | | | | | Fixes an oversight, and adds verification to catch it in the unloop.ll tests. llvm-svn: 138622
* Atomic load/store on ARM/Thumb.Eli Friedman2011-08-265-5/+90
| | | | | | | | | | | | I don't really like the patterns, but I'm having trouble coming up with a better way to handle them. I plan on making other targets use the same legalization ARM-without-memory-barriers is using... it's not especially efficient, but if anyone cares, it's not that hard to fix for a given target if there's some better lowering. llvm-svn: 138621
* Address review comments.Benjamin Kramer2011-08-261-9/+8
| | | | | | | | - Reword comments. - Allow undefined behavior interfering with undefined behavior. - Add address space checks. llvm-svn: 138619
* SimplifyCFG: If we have a PHI node that can evaluate to NULL and do a load ↵Benjamin Kramer2011-08-261-0/+69
| | | | | | | | | | or store to the address returned by the PHI node then we can consider this incoming value as dead and remove the edge pointing there, unless there are instructions that can affect control flow executed in between. In theory this could be extended to other instructions, eg. division by zero, but it's likely that it will "miscompile" some code because people depend on div by zero not trapping. NULL pointer dereference usually leads to a crash so we should be on the safe side. This shrinks the size of a Release clang by 16k on x86_64. llvm-svn: 138618
* Look at only the terminators of the basic block. Also, if we're using the new EHBill Wendling2011-08-251-5/+9
| | | | | | | scheme, return 'true' so that it doesn't try to run the old EH scheme's fixup on the new code. llvm-svn: 138605
* Initial check in that will auto-upgrade the old EH scheme to the new EH scheme.Bill Wendling2011-08-251-0/+201
| | | | | | | | | | This upgrade suffers from the problems of the old EH scheme - i.e., that the calls to llvm.eh.exception() and llvm.eh.selector() can wander off and get lost. It makes a valiant effort to reclaim these little lost lambs. This is a first draft, so it hasn't yet been hooked up to the parser. llvm-svn: 138602
* Do the same as r138461. Mark VZEROALL as clobbering all YMM registersBruno Cardoso Lopes2011-08-251-4/+3
| | | | llvm-svn: 138592
* Remove stray fullstop.Nick Lewycky2011-08-251-1/+1
| | | | llvm-svn: 138589
* Add support for AVX 256-bit version of MOVDDUP!Bruno Cardoso Lopes2011-08-252-0/+47
| | | | llvm-svn: 138588
* Make isMOVDDUP mask check more strict and update comments!Bruno Cardoso Lopes2011-08-251-2/+7
| | | | llvm-svn: 138587
* Port over additional encoding tests to decoding tests, and fix an operand ↵Owen Anderson2011-08-251-1/+1
| | | | | | ordering bug this exposed. llvm-svn: 138575
* Intel family 6 model 44 is Gulftown/Westmere-EP and doesn't have AVX.Benjamin Kramer2011-08-251-2/+2
| | | | llvm-svn: 138573
* ARM fix for missing implicit operands on ldmia_ret.Andrew Trick2011-08-251-1/+3
| | | | | | rdar://10005094: miscompile of 176.gcc llvm-svn: 138568
* whitespaceAndrew Trick2011-08-251-1/+1
| | | | llvm-svn: 138566
* Explicitly disallow predication in Thumb1 assembly.Jim Grosbach2011-08-251-0/+6
| | | | llvm-svn: 138562
* Add more missing TB encodings to VEX instructions to allow them to be ↵Craig Topper2011-08-251-36/+36
| | | | | | disassembled. Fixes remainder of PR10678. llvm-svn: 138553
* Add TB encoding to VEROALL, VZEROUPPER, and VCVTPS2PD to allow them to be ↵Craig Topper2011-08-251-8/+8
| | | | | | disassembled. Fixes PR10723. llvm-svn: 138551
* LSR wants to split the landing pad's critical edge. Let it do it, but use theBill Wendling2011-08-251-1/+8
| | | | | | proper function to do it. llvm-svn: 138550
* Initialize member variable.Benjamin Kramer2011-08-251-1/+2
| | | | llvm-svn: 138548
* Add support for 256-bit versions of VSHUFPD and VSHUFPS.Bruno Cardoso Lopes2011-08-252-18/+204
| | | | llvm-svn: 138546
* Add memory version of SHUFPD to mask decoding!Bruno Cardoso Lopes2011-08-251-1/+3
| | | | llvm-svn: 138545
* Hide -global-merge option.Evan Cheng2011-08-251-1/+1
| | | | llvm-svn: 138540
* When inserting new instructions, use getFirstInsertionPt instead ofBill Wendling2011-08-256-17/+18
| | | | | | getFirstNonPHI so that it will skip over the landingpad instructions as well. llvm-svn: 138537
* Add a command line option to disable global merge pass.Evan Cheng2011-08-251-1/+6
| | | | llvm-svn: 138536
* Remove a out-of-place comment.Evan Cheng2011-08-251-1/+0
| | | | llvm-svn: 138534
* Create a section for non-instructions patterns in the beginning of theBruno Cardoso Lopes2011-08-241-88/+82
| | | | | | file, and move more code around! llvm-svn: 138521
* Move code around!Bruno Cardoso Lopes2011-08-241-58/+66
| | | | llvm-svn: 138520
* Organize UNPCK* patterns, also add remaining for AVX.Bruno Cardoso Lopes2011-08-241-97/+97
| | | | llvm-svn: 138519
* Move remaining MOVDDUP patterns close to MOVDDUP defintion and duplicateBruno Cardoso Lopes2011-08-241-27/+36
| | | | | | the missing ones for AVX. llvm-svn: 138518
* Organize and tidy up MOVDDUP section. Also update comments!Bruno Cardoso Lopes2011-08-241-35/+33
| | | | llvm-svn: 138517
* Move MOVHLPS patterns close to MOVHLPS definition, and duplicate theBruno Cardoso Lopes2011-08-241-6/+10
| | | | | | pattern for 128-bit AVX mode. llvm-svn: 138516
* Move all PSHUF* patterns close to the PSHUF* definitions. Also beBruno Cardoso Lopes2011-08-241-47/+56
| | | | | | | explicit about which subtarget they refer to, and add AVX versions of the ones we currently don't. Remove old and now wrong comments! llvm-svn: 138515
* Move all SHUFP* patterns close to the SHUFP* definitions. Also beBruno Cardoso Lopes2011-08-242-79/+107
| | | | | | | | explicit about which subtarget they refer to, and add AVX versions of the ones we currently don't. Make the mask check more strict, to be clear it won't be used to match to 256-bit versions! llvm-svn: 138514
* Perform more thorough checking of t2IT mask parameters, which fixes all ↵Owen Anderson2011-08-242-0/+14
| | | | | | remaining crashers when disassembling the entire 16-bit instruction space. llvm-svn: 138507
* Hook up 64-bit atomic load/store on x86-32. I plan to write more efficient ↵Eli Friedman2011-08-241-3/+33
| | | | | | implementations eventually. llvm-svn: 138505
* Some autoconf tests use module level inline asm to test compiler's handling ofEvan Cheng2011-08-242-3/+3
| | | | | | | | | | | | | | | | .cfi_startproc. e.g. libffi: $ cat confopt.c asm (".cfi_startproc\n\t.cfi_endproc"); int main () { return 0; } Teach MC / dwarf emission to handle these cfi directives which essentially create an empty frame. rdar://10017184 llvm-svn: 138504
* ARM asm backend initialize isThumbMode based on target triple.Jim Grosbach2011-08-241-1/+1
| | | | llvm-svn: 138501
* Thumb .n mnemonic qualifiers can be ignored for now.Jim Grosbach2011-08-241-1/+5
| | | | | | | We'll need to pay attention to them when we start getting more serious about the details of parsing thumb2 assembly. llvm-svn: 138500
* Thumb parsing and encoding for SUB (SP minu immediate).Jim Grosbach2011-08-242-7/+13
| | | | | | | Fix FiXME in test file. Remove FIXME for SUB (SP minus register) since that form is Thumb2 only. llvm-svn: 138494
* Be careful not to walk off the end of the operand info list while updating ↵Owen Anderson2011-08-241-1/+2
| | | | | | VFP predicates. llvm-svn: 138492
OpenPOWER on IntegriCloud