summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* More complete/correct implementation of the comparison operators for Eli Friedman2008-05-292-7/+59
| | | | | | constant expressions. llvm-svn: 51682
* Fix an extremely subtle bug with pointer comparisons: they have to be Eli Friedman2008-05-292-4/+7
| | | | | | | unsigned because it's possible (at least in theory) to have have both positive and negative pointers pointing to the same object. llvm-svn: 51681
* Add a newline at the end of this file.Duncan Sands2008-05-291-1/+1
| | | | llvm-svn: 51680
* Rearrange EmitLValueForField a bit to work properly for _Bool bitfields Eli Friedman2008-05-292-10/+12
| | | | | | | in unions (we don't want to do the union-specific bitcast for bit-fields). llvm-svn: 51678
* Add codegen support for a few more kinds of initializer constant Eli Friedman2008-05-292-1/+38
| | | | | | expressions. llvm-svn: 51677
* Add CodeGen support for alignment on globals, both for unusual natural Eli Friedman2008-05-292-0/+10
| | | | | | alignment and alignment attributes. llvm-svn: 51676
* A couple minor fixes to make debug info usable for arbitrary code: don't Eli Friedman2008-05-292-1/+8
| | | | | | | | emit incomplete types, because they crash llc, and always use the logical location as the current location so we don't crash doing invalid queries on CurLoc. llvm-svn: 51675
* Tentative declarations are supposed to have common linkage, not weak. Eli Friedman2008-05-292-2/+2
| | | | | | This change makes clang generate the same thing as llvm-gcc. llvm-svn: 51674
* Always use packed structs. This isn't really very nice, but there's Eli Friedman2008-05-293-21/+15
| | | | | | | | | | | | | nothing fundamentally wrong with it. Emitting unpacked structs where possible is more work for almost no practical benefit. We'll probably want to fix it at some point anyway, but it's low priority. The issue with long double in particular is that LLVM thinks an X86 long double is 10 bytes, while clang considers it for all purposes to be either 12 or 16 bytes, depending on the platform, even in a packed struct. llvm-svn: 51673
* Implementation of stdarg.h.Eli Friedman2008-05-291-0/+39
| | | | llvm-svn: 51672
* Re-enable the newly simplified ADCE. This fixes a regression onOwen Anderson2008-05-291-1/+1
| | | | | | Dhrystone introduced by its removal. llvm-svn: 51669
* Replace the old ADCE implementation with a new one that more simply solvesOwen Anderson2008-05-293-501/+62
| | | | | | | | | the one case that ADCE catches that normal DCE doesn't: non-induction variable loop computations. This implementation handles this problem without using postdominators. llvm-svn: 51668
* Implement vector shift up / down and insert zero with ps{rl}lq / ps{rl}ldq.Evan Cheng2008-05-2910-25/+183
| | | | llvm-svn: 51667
* Remove debugging code.Owen Anderson2008-05-291-5/+1
| | | | llvm-svn: 51666
* Add nounwind.Evan Cheng2008-05-292-7/+7
| | | | llvm-svn: 51665
* XOR?RI instructions aren't as cheap as moves.Bill Wendling2008-05-291-23/+21
| | | | llvm-svn: 51664
* convert more operand loops to iterator formulationGabor Greif2008-05-292-23/+29
| | | | llvm-svn: 51663
* Implement "AsCheapAsAMove" for some obviously cheap instructions: xor and theBill Wendling2008-05-292-42/+50
| | | | | | like. llvm-svn: 51662
* convert another operand loop to iterator formulationGabor Greif2008-05-291-3/+3
| | | | llvm-svn: 51661
* Add a flag to indicate that an instruction is as cheap (or cheaper) than a moveBill Wendling2008-05-286-19/+37
| | | | | | | | | instruction to execute. This can be used for transformations (like two-address conversion) to remat an instruction instead of generating a "move" instruction. The idea is to decrease the live ranges and register pressure and all that jazz. llvm-svn: 51660
* Check the "isSafeToMove" predicate, which has a series of tests to make sureBill Wendling2008-05-281-1/+3
| | | | | | that it's safe to remat an instruction. llvm-svn: 51659
* Remap VNInfo data as well when doing renumbering.Owen Anderson2008-05-281-0/+6
| | | | llvm-svn: 51658
* Factor the numbering computation into a separate method, and add the ↵Owen Anderson2008-05-282-11/+32
| | | | | | slightest attempt at some renumbering logic, which is currently unused. llvm-svn: 51652
* Fix rewrite rope to keep the leaf list up-to-date as it erases leavesChris Lattner2008-05-282-6/+28
| | | | | | from the rope. rdar://5952468 llvm-svn: 51651
* Fix PR2289: vr defined by multiple implicit_def as result of coalescing.Evan Cheng2008-05-282-6/+19
| | | | llvm-svn: 51648
* Teach local register allocator to deal with landing pad MBB's.Evan Cheng2008-05-282-4/+34
| | | | llvm-svn: 51647
* give location info to another paren expr.Chris Lattner2008-05-281-1/+2
| | | | llvm-svn: 51646
* add an assertionChris Lattner2008-05-281-0/+1
| | | | llvm-svn: 51645
* Update some comments noticed in a recent checkinNate Begeman2008-05-281-3/+8
| | | | llvm-svn: 51644
* Update text to point people at the right version of the tutorial forChris Lattner2008-05-281-1/+5
| | | | | | their release. llvm-svn: 51638
* Implement PR2370: memmove(x,x,size) -> noop.Chris Lattner2008-05-282-0/+10
| | | | llvm-svn: 51636
* Add chain inputs for loads.Chris Lattner2008-05-281-3/+3
| | | | llvm-svn: 51635
* Fix CodeGen/Generic/2005-10-21-longlonggtu.ll on ia64.Chris Lattner2008-05-281-1/+2
| | | | llvm-svn: 51634
* loads should get chains. THis helps but does not solve ↵Chris Lattner2008-05-281-2/+4
| | | | | | | | CodeGen/Generic/2003-05-27-phifcmpd.ll on ia64. llvm-svn: 51633
* Fix 2006-04-28-Sign-extend-bool.ll for ia64.Chris Lattner2008-05-281-0/+2
| | | | llvm-svn: 51632
* reindent.Chris Lattner2008-05-281-77/+77
| | | | llvm-svn: 51631
* Fix the encoding for two more "rm" instructions that were using MRMSrcReg.Dan Gohman2008-05-281-2/+2
| | | | llvm-svn: 51630
* Fixed X86 encoding error CVTPS2PD and CVTPD2PS when the source operandMon P Wang2008-05-281-2/+2
| | | | | | is a memory location llvm-svn: 51626
* Don't attempt to create VZEXT_LOAD out of an extload. This an issue where theNate Begeman2008-05-281-0/+5
| | | | | | | | | | | | | | | | code generator would do something like this: f64 = load f32 <anyext>, f32mem v2f64 = insertelt undef, %0, 0 v2f64 = insertelt %1, 0.0, 1 into v2f64 = vzext_load f32mem which on x86 is movsd, when you really wanted a cvtss2sd/movsd pair. llvm-svn: 51624
* use space insted of tabsNick Kledzik2008-05-281-13/+13
| | | | llvm-svn: 51623
* Fix a couple crashes on invalid input.Chris Lattner2008-05-272-1/+7
| | | | llvm-svn: 51622
* When the build command is xcodebuild, set the magical environment variable ↵Ted Kremenek2008-05-271-1/+7
| | | | | | LDPLUSPLUS to g++ to ensure that C++ object files are linked with g++ instead of gcc. llvm-svn: 51621
* Correctly check to see if we are analyzing C++ files (skip).Ted Kremenek2008-05-271-1/+1
| | | | llvm-svn: 51620
* Check first member alignment and uses packed struct if required.Devang Patel2008-05-272-0/+5
| | | | llvm-svn: 51619
* Fix test caseDevang Patel2008-05-271-0/+1
| | | | llvm-svn: 51618
* fix infinite recursion if a global's initializer references the globalNick Kledzik2008-05-271-2/+7
| | | | llvm-svn: 51617
* Make Use::init() private, it breaks invariants, clients should assign or use ↵Gabor Greif2008-05-271-3/+2
| | | | | | set(). llvm-svn: 51615
* Use Function::getEntryBlock instead of Function::begin, for clarity.Dan Gohman2008-05-271-1/+1
| | | | llvm-svn: 51613
* Print debug output when any edge becomes executable, includingDan Gohman2008-05-271-3/+3
| | | | | | the first visited edge. llvm-svn: 51612
* Add instcombine after global optimizations.Devang Patel2008-05-271-0/+6
| | | | llvm-svn: 51611
OpenPOWER on IntegriCloud