summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* A select between a constant and zero, when fed by a bit test, can be efficientlyOwen Anderson2010-09-221-0/+29
| | | | | | | lowered using a series of shifts. Fixes <rdar://problem/8285015>. llvm-svn: 114599
* Fix PR8201: Update the code to call via X86::CALL64pcrel32 in the 64-bit case.Cameron Esfahani2010-09-221-2/+3
| | | | llvm-svn: 114597
* Change VDUPLANE DAG combiner to just return the result instead of callingBob Wilson2010-09-221-5/+3
| | | | | | | | CombineTo to avoid putting the result on the worklist. I don't think it makes much difference for now, but it might help someday as we add more DAG combine optimizations. llvm-svn: 114595
* Avoid some Mach-O specific alignment being done on ELF.Rafael Espindola2010-09-225-23/+28
| | | | llvm-svn: 114594
* allow target-specific label suffixes, patch by Yuri Gribov!Chris Lattner2010-09-222-1/+2
| | | | llvm-svn: 114592
* Combine both VMOVDRR(VMOVRRD) and VMOVRRD(VMOVDRR), instead of just doing oneBob Wilson2010-09-221-28/+35
| | | | | | | | of those. Refactor to share code for handling BUILD_VECTOR(VMOVRRD). I don't have a testcase that exercises this, but it seems like an obvious good thing to do. llvm-svn: 114589
* Teach memdep about TBAA tags.Dan Gohman2010-09-221-71/+95
| | | | llvm-svn: 114588
* Use DW_OP_fbreg when offset is based on frame register.Devang Patel2010-09-221-0/+10
| | | | llvm-svn: 114585
* add FIXMEJim Grosbach2010-09-221-0/+1
| | | | llvm-svn: 114578
* Temporarily work around new address lowering while I figure out whatEric Christopher2010-09-221-1/+2
| | | | | | needs to happen for darwin. llvm-svn: 114577
* Remove a few commented out bitsJim Grosbach2010-09-221-14/+0
| | | | llvm-svn: 114576
* Fix typo and add a FIXME.Rafael Espindola2010-09-221-1/+2
| | | | llvm-svn: 114570
* When moving zext/sext to be folded with a load, ignore the issue of whetherBob Wilson2010-09-221-1/+2
| | | | | | | | truncates are free only in the case where the extended type is legal but the load type is not. If both types are illegal, such as when they are too big, the load may not be legalized into an extended load. llvm-svn: 114568
* Add PrintSpecial() handling for in ARM MC instruction printer.Jim Grosbach2010-09-222-2/+9
| | | | llvm-svn: 114563
* grammar tweakageJim Grosbach2010-09-221-2/+2
| | | | llvm-svn: 114561
* remove trailing whitespaceJim Grosbach2010-09-221-31/+31
| | | | llvm-svn: 114560
* CrashRecovery/Darwin: Override raise() as well so that crash recovery doesn'tDaniel Dunbar2010-09-221-1/+5
| | | | | | | end up altering the thread on which crashes are done because of its use of Darwin's broken raise() implementation. llvm-svn: 114558
* Correctly align bss.Rafael Espindola2010-09-221-0/+6
| | | | llvm-svn: 114556
* Add MC instruction printer support for ARM and Thumb1 jump tables.Jim Grosbach2010-09-221-3/+49
| | | | llvm-svn: 114555
* Attempt to fix llvm-gcc build. It was crashing when building gcov.o for anBob Wilson2010-09-221-2/+3
| | | | | | | | ARM cross-compiler on x86, because the MMO size did not match the type size. This fixes the MMO size and also the size of the stack object to match the type size. llvm-svn: 114554
* Add MC instruction printer support for TB[BH] style thumb2 jump tables.Jim Grosbach2010-09-221-24/+27
| | | | llvm-svn: 114553
* Clean up comment.Jim Grosbach2010-09-221-4/+4
| | | | llvm-svn: 114550
* fix rdar://8456371 - Handle commutable instructions written backward.Chris Lattner2010-09-221-0/+10
| | | | llvm-svn: 114536
* Fix an inconsistency in the x86 backend that led it to reject "calll foo" onChris Lattner2010-09-223-5/+15
| | | | | | | | | | | | x86-32: 32-bit calls were named "call" not "calll". 64-bit calls were correctly named "callq", so this only impacted x86-32. This fixes rdar://8456370 - llvm-mc rejects 'calll' This also exposes that mingw/64 is generating a 32-bit call instead of a 64-bit call, I will file a bugzilla. llvm-svn: 114534
* fix rdar://8456412 - llvm-mc crash in encoder on "mov %rdx, %cr8"Chris Lattner2010-09-223-42/+27
| | | | | | Teaching the code generator about CR8-15, how to rex them up, etc. llvm-svn: 114533
* fix rdar://8456417 - llvm-mc can't do basic mathChris Lattner2010-09-221-21/+22
| | | | llvm-svn: 114532
* add the missing aliases for fp stack cmovs, rdar://8456391Chris Lattner2010-09-221-0/+6
| | | | llvm-svn: 114531
* reimplement elf TLS support in terms of addressing modes, eliminating ↵Chris Lattner2010-09-224-58/+42
| | | | | | SegmentBaseAddress. llvm-svn: 114529
* Fix rdar://8456364 - llvm-mc rejects '%CS'Chris Lattner2010-09-221-8/+13
| | | | llvm-svn: 114528
* fix rdar://8456389 - llvm-mc mismatch with 'as' on 'fstp'Chris Lattner2010-09-221-0/+8
| | | | | | | | | -This line, and those below, will be ignored-- M test/MC/AsmParser/X86/x86_instructions.s M lib/Target/X86/AsmParser/X86AsmParser.cpp llvm-svn: 114527
* fix rdar://8456361 - llvm-mc rejects 'rep movsd'Chris Lattner2010-09-221-0/+6
| | | | llvm-svn: 114526
* convert the last 4 X86ISD nodes that should have memoperands to have them.Chris Lattner2010-09-224-41/+69
| | | | llvm-svn: 114523
* give X86ISD::FNSTCW16m a memoperand, since it touches memory. It onlyChris Lattner2010-09-223-16/+21
| | | | | | can access the stack due to how it is generated though. llvm-svn: 114522
* give FP_TO_INT16_IN_MEM and friends a memoperand. They are onlyChris Lattner2010-09-224-22/+29
| | | | | | used with stack slots, but hey, lets be safe. llvm-svn: 114521
* give VZEXT_LOAD a memory operand, it now works with segment registers.Chris Lattner2010-09-225-13/+14
| | | | llvm-svn: 114515
* revert r114386 now that address modes work correctly, we get a niceChris Lattner2010-09-221-4/+0
| | | | | | call through gs-relative memory now. llvm-svn: 114510
* give LCMPXCHG_DAG[8] a memory operand, allowing it to work with addrspace ↵Chris Lattner2010-09-213-10/+11
| | | | | | 256/257 llvm-svn: 114508
* OptimizeCompareInstr should avoid iterating pass the beginning of the MBB ↵Evan Cheng2010-09-211-1/+6
| | | | | | when the 'and' instruction is after the comparison. llvm-svn: 114506
* Add start of support for MC instruction printer of ARM jump tables. Filling inJim Grosbach2010-09-212-0/+74
| | | | | | the rest of it is next up. llvm-svn: 114500
* Enable target-specific mul-lowering on ARM, even at -Os. Remove a test that ↵Owen Anderson2010-09-211-4/+0
| | | | | | | | this makes irrelevant, but add a new test for the new, improved functionality. llvm-svn: 114494
* Build the complement interval dupli after the split intervals instead ofJakob Stoklund Olesen2010-09-212-35/+145
| | | | | | | | | | | | | creating it before and subtracting split ranges. This way, the SSA update code in LiveIntervalMap can properly create and use new phi values in dupli. Now it is possible to create split regions where a value escapes along two different CFG edges, creating phi values outside the split region. This is a work in progress and probably quite broken. llvm-svn: 114492
* reimplement support for GS and FS relative address space matchingChris Lattner2010-09-213-57/+44
| | | | | | | | | | | | | | | | | by having X86DAGToDAGISel::SelectAddr get passed in the parent node of the operand match (the load/store/atomic op) and having it get the address space from that, instead of having special FS/GS addr mode operations that require duplicating the entire instruction set to support. This makes FS and GS relative accesses *far* more predictable and work much better. It also simplifies the X86 backend a bit, more to come. There is still a pending issue with nodes like ISD::PREFETCH and X86ISD::FLD, which really should be MemSDNode's but aren't. llvm-svn: 114491
* Fixed pr20314-2.c failure, added E, F, p constraint letters.John Thompson2010-09-211-6/+17
| | | | llvm-svn: 114490
* Rework passing parent pointers into complexpatterns, I forgotChris Lattner2010-09-211-27/+35
| | | | | | | | that complex patterns are matched after the entire pattern has a structural match, therefore the NodeStack isn't in a useful state when the actual call to the matcher happens. llvm-svn: 114489
* Move a sign-extend or a zero-extend of a load to the same basic block as theBob Wilson2010-09-211-1/+2
| | | | | | | load when the type of the load is not legal, even if truncates are not free. The load is going to be legalized to an extending load anyway. llvm-svn: 114488
* Clarify a comment.Bob Wilson2010-09-211-1/+1
| | | | llvm-svn: 114487
* If only user of a vreg is an copy instruction to export copy of vreg out of ↵Devang Patel2010-09-211-0/+23
| | | | | | | | | current basic block then insert DBG_VALUE so that debug value of the variable is also transfered to new vreg. Testcase is in r114476. This fixes radar 8412415. llvm-svn: 114478
* correct this logic.Chris Lattner2010-09-211-2/+2
| | | | llvm-svn: 114474
* Reimplement r114460 in target-independent DAGCombine rather than ↵Owen Anderson2010-09-213-23/+29
| | | | | | | | | target-dependent, by using the predicate to discover the number of sign bits. Enhance X86's target lowering to provide a useful response to this query. llvm-svn: 114473
* just like they can opt into getting the root of the pattern beingChris Lattner2010-09-211-1/+5
| | | | | | | matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. llvm-svn: 114472
OpenPOWER on IntegriCloud