summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add X86 MMX type to bitcode and Type.Dale Johannesen2010-09-1012-1/+34
| | | | | | | (The Ada bindings probably need it too, but all the obvious places to change say "do not edit this file".) llvm-svn: 113618
* Use StringRef which performs the "early exit" when compared against a constantBill Wendling2010-09-101-6/+1
| | | | | | string. llvm-svn: 113615
* Add DEBUG message.Devang Patel2010-09-102-4/+16
| | | | llvm-svn: 113614
* Reapply r113585. The msvc machine is mercurial.Bill Wendling2010-09-101-2/+2
| | | | llvm-svn: 113610
* This transform is also performed by InstructionSimplify, remove the duplicate.Benjamin Kramer2010-09-101-3/+0
| | | | llvm-svn: 113608
* r113585 was causing clang-i686-xp-msvc9 to fail in mysterious ways that I can'tBill Wendling2010-09-101-2/+2
| | | | | | understand (the log file was no help). llvm-svn: 113605
* Early exit with simple checks.Bill Wendling2010-09-101-3/+6
| | | | llvm-svn: 113603
* Auto-upgrade the magic ".llvm.eh.catch.all.value" global toBill Wendling2010-09-102-0/+20
| | | | | | "llvm.eh.catch.all.value". Only the name needs to be changed. llvm-svn: 113600
* Calculate the number of VLDM/VSTM registers by subtracting the number ofBob Wilson2010-09-101-2/+2
| | | | | | fixed operands from the total number of operands (including the variadic ones). llvm-svn: 113597
* Lower the unrolling theshold to 150. Empirical tests indicate that this is ↵Owen Anderson2010-09-101-1/+1
| | | | | | | | a sweet spot in the performance per code size increase curve. llvm-svn: 113595
* Mark the sse_load_f32 and sse_load_f64 load patterns as having memoperands soBill Wendling2010-09-101-2/+2
| | | | | | | that the memoperands are properly set after DAG building and general mucking about. llvm-svn: 113585
* Reword since this may not be a bug but intended behavior.Bill Wendling2010-09-101-10/+6
| | | | llvm-svn: 113584
* Fix merging base-updates for VLDM/VSTM: Before I switched these instructionsBob Wilson2010-09-101-1/+2
| | | | | | | | | | to use AddrMode4, there was a count of the registers stored in one of the operands. I changed that to just count the operands but forgot to adjust for the size of D registers. This was noticed by Evan as a performance problem but it is a potential correctness bug as well, since it is possible that this could merge a base update with a non-matching immediate. llvm-svn: 113576
* Teach if-converter to be more careful with predicating instructions that wouldEvan Cheng2010-09-1022-72/+114
| | | | | | | | | | | take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. llvm-svn: 113570
* Fix build error.Eric Christopher2010-09-101-1/+1
| | | | llvm-svn: 113566
* Update comments, reorganize some code, rename variables to beEric Christopher2010-09-101-43/+40
| | | | | | more clear. No functional change. llvm-svn: 113565
* 64-bit fp loads can come straight out of the constant pool, not asEric Christopher2010-09-091-10/+18
| | | | | | bad as I'd thought. llvm-svn: 113561
* Discard metadata produced by LLVM 2.7. The value enumeration it usedDan Gohman2010-09-092-15/+45
| | | | | | | | | | | | | is different from what the code now uses in a two ways: NamedMDNodes were considered Values and included in the numbering, and the function-local metadata counter wasn't reset between functions. The later problem breaks lazy deserialization, so instead of trying to emulate the old numbering, just drop the old metadata. The only in-tree use case is debug info with LTO, where the QOI loss is considered acceptable. llvm-svn: 113557
* llvm-mc: Don't crash when using -n and we see a directive before the initial ↵Daniel Dunbar2010-09-091-0/+30
| | | | | | | | section. - This is annoying, because we have to scatter this check everywhere that could emit real data, but I see no better solution. llvm-svn: 113552
* llvm-mc: Make sure we exit != 0 if any errors are encountered.Daniel Dunbar2010-09-091-8/+10
| | | | llvm-svn: 113551
* SIToFP and FPToSI conversions work only on fp-reg to fp-reg. MoveEric Christopher2010-09-091-7/+33
| | | | | | some data around and implement a couple of move routines to do this. llvm-svn: 113546
* MDNodes are not Constants.Dan Gohman2010-09-091-5/+0
| | | | llvm-svn: 113539
* Print invalid metadata references as <badref>, for consistency withDan Gohman2010-09-091-2/+10
| | | | | | regular value references. llvm-svn: 113538
* New "move to fp reg" routine. Use it.Eric Christopher2010-09-091-5/+12
| | | | llvm-svn: 113537
* "Strike that, reverse it." -- Mr. Wonka.Eric Christopher2010-09-091-2/+2
| | | | | | Truncate when truncating, extend when extending. llvm-svn: 113536
* What the loop unroller cares about, rather than just not unrolling loops ↵Owen Anderson2010-09-092-5/+11
| | | | | | | | | | | with calls, is not unrolling loops that contain calls that would be better off getting inlined. This mostly comes up when an interleaved devirtualization pass has devirtualized a call which the inliner will inline on a future pass. Thus, rather than blocking all loops containing calls, add a metric for "inline candidate calls" and block loops containing those instead. llvm-svn: 113535
* Add FPTrunc, fix some bugs where I forgot to update the value map.Eric Christopher2010-09-091-2/+28
| | | | llvm-svn: 113533
* Revert r113439, which relaxed the requirement that loops containing calls ↵Owen Anderson2010-09-091-4/+2
| | | | | | | | cannot be unrolled. After some discussion, there seems to be a better way to achieve the same effect. llvm-svn: 113528
* r113526 introduced an unintended change to the loop unrolling threshold. ↵Owen Anderson2010-09-091-1/+1
| | | | | | Revert it. llvm-svn: 113527
* Fix typo in code to cap the loop code size reduction calculation.Owen Anderson2010-09-091-2/+2
| | | | llvm-svn: 113526
* Use code-size reduction metrics to estimate the amount of savings we'll get ↵Owen Anderson2010-09-091-1/+24
| | | | | | | | when we unroll a loop. Next step is to recalculate the threshold values given this new heuristic. llvm-svn: 113525
* Basic FP->Int, Int->FP conversions.Eric Christopher2010-09-091-0/+55
| | | | llvm-svn: 113523
* Add one more pattern to fallback movddupBruno Cardoso Lopes2010-09-091-0/+2
| | | | llvm-svn: 113522
* Extend the getDependence query with support for PHI translation.Dan Gohman2010-09-092-13/+57
| | | | llvm-svn: 113521
* For each instruction itinerary class, specify the number of micro-ops eachEvan Cheng2010-09-096-8/+97
| | | | | | | | | | instruction in the class would be decoded to. Or zero if the number of uOPs must be determined dynamically. This will be used to determine the cost-effectiveness of predicating a micro-coded instruction. llvm-svn: 113513
* MCELF: Write relocation fragments in the right endian.Benjamin Kramer2010-09-091-5/+26
| | | | | | - This code is gross, but does the job for now. llvm-svn: 113509
* Make ELF OS ABI dependent on the OS from target triple.Roman Divacky2010-09-092-13/+25
| | | | llvm-svn: 113508
* Move remaining MMX instructions from SSE to MMX.Dale Johannesen2010-09-092-107/+44
| | | | llvm-svn: 113501
* Refactor code-size reduction estimation methods out of InlineCostAnalyzer ↵Owen Anderson2010-09-091-92/+90
| | | | | | | | | | | and into CodeMetrics. They don't use any InlineCostAnalyzer state, and are useful for other clients who don't necessarily want to use all of InlineCostAnalyzer's logic, some of which is fairly inlining-specific. No intended functionality change. llvm-svn: 113499
* MC: Give a (lame) hard error if a .org directive would create an unreasonablyDaniel Dunbar2010-09-091-1/+1
| | | | | | large object file (> 1GB). llvm-svn: 113494
* lib/System/Host.cpp: 7bit-ize. Eliminate "TM" and "(R)" in comments.NAKAMURA Takumi2010-09-091-16/+16
| | | | llvm-svn: 113486
* Silence compiler warning.Kalle Raiskila2010-09-091-1/+1
| | | | llvm-svn: 113478
* Fix NEON VLD pseudo instruction itineraries that were incorrectly copied fromBob Wilson2010-09-091-5/+5
| | | | | | | the VST pseudos. The VLD/VST scheduling still needs work (see pr6722), but at least we shouldn't confuse the loads with the stores. llvm-svn: 113473
* Nuke whitespace and fix some indenting.Eric Christopher2010-09-091-60/+60
| | | | llvm-svn: 113463
* Move most MMX instructions (defined as anything thatDale Johannesen2010-09-092-121/+136
| | | | | | | uses MMX, even if it also uses other things) from InstrSSE into InstrMMX. No (intended) functional change. llvm-svn: 113462
* Handle 64-bit floating point binops as well.Eric Christopher2010-09-091-10/+12
| | | | llvm-svn: 113461
* Basic 32-bit FP operations.Eric Christopher2010-09-091-0/+45
| | | | llvm-svn: 113459
* For double-spaced VLD3/VLD4 instructions, copy the explicit super-register useBob Wilson2010-09-091-5/+9
| | | | | | | operand from the pseudo instruction to the new instruction as an implicit use. This will preserve any other flags (e.g., kill) on the operand. llvm-svn: 113456
* Handle float->double extension.Eric Christopher2010-09-091-0/+23
| | | | llvm-svn: 113455
* Rewrite TargetMaterializeConstant splitting it out into two functionsEric Christopher2010-09-091-21/+45
| | | | | | | for integer and fp constants. Implement todo to use vfp3 instructions to materialize easy constants if we can. llvm-svn: 113453
OpenPOWER on IntegriCloud