- Jan 01, 2011
-
-
Rafael Espindola authored
llvm-svn: 122667
-
Anton Korobeynikov authored
earlyclobber stuff. This should fix PRs 2313 and 8157. Unfortunately, no testcase, since it'd be dependent on register assignments. llvm-svn: 122663
-
Duncan Sands authored
is the wrong hammer for this nail, and is probably right. llvm-svn: 122661
-
Duncan Sands authored
numbering, in which it considers (for example) "%a = add i32 %x, %y" and "%b = add i32 %x, %y" to be equal because the operands are equal and the result of the instructions only depends on the values of the operands. This has almost no effect (it removes 4 instructions from gcc-as-one-file), and perhaps slows down compilation: I measured a 0.4% slowdown on the large gcc-as-one-file testcase, but it wasn't statistically significant. llvm-svn: 122654
-
Che-Liang Chiou authored
llvm-svn: 122653
-
Che-Liang Chiou authored
llvm-svn: 122652
-
- Dec 31, 2010
-
-
Oscar Fuentes authored
is necessary for executing the custom command that runs the assember. Fixes PR8877. llvm-svn: 122649
-
- Dec 30, 2010
-
-
Nick Lewycky authored
Fixes PR8861. llvm-svn: 122641
-
Che-Liang Chiou authored
llvm-svn: 122638
-
- Dec 29, 2010
-
-
Wesley Peck authored
llvm-svn: 122631
-
Venkatraman Govindaraju authored
llvm-svn: 122626
-
NAKAMURA Takumi authored
CMake: Add disabling optimization on MSVC8 and MSVC10 as workaround for some files in Target/ARM and Target/X86. llvm-svn: 122623
-
- Dec 28, 2010
-
-
Venkatraman Govindaraju authored
Multiple SPARC backend fixes: added Y register; updated select_cc, subx, subxcc defs/uses; and fixed CustomInserter. llvm-svn: 122607
-
Chris Lattner authored
llvm-svn: 122603
-
- Dec 27, 2010
-
-
Rafael Espindola authored
supports. llvm-svn: 122577
-
- Dec 26, 2010
-
-
Chris Lattner authored
llvm-svn: 122560
-
Chris Lattner authored
llvm-svn: 122559
-
- Dec 24, 2010
-
-
Andrew Trick authored
DAG scheduling during isel. Most new functionality is currently guarded by -enable-sched-cycles and -enable-sched-hazard. Added InstrItineraryData::IssueWidth field, currently derived from ARM itineraries, but could be initialized differently on other targets. Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is active, and if so how many cycles of state it holds. Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry into the scheduler's available queue. ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to get information about it's SUnits, provides RecedeCycle for bottom-up scheduling, correctly computes scoreboard depth, tracks IssueCount, and considers potential stall cycles when checking for hazards. ScheduleDAGRRList now models machine cycles and hazards (under flags). It tracks MinAvailableCycle, drives the hazard recognizer and priority queue's ready filter, manages a new PendingQueue, properly accounts for stall cycles, etc. llvm-svn: 122541
-
Andrew Trick authored
llvm-svn: 122539
-
Jim Grosbach authored
llvm-svn: 122530
-
Evan Cheng authored
llvm-svn: 122528
-
Jim Grosbach authored
llvm-svn: 122524
-
Jim Grosbach authored
llvm-svn: 122523
-
- Dec 23, 2010
-
-
Bob Wilson authored
If the basic block containing the BCCi64 (or BCCZi64) instruction ends with an unconditional branch, that branch needs to be deleted before appending the expansion of the BCCi64 to the end of the block. llvm-svn: 122521
-
Chris Lattner authored
llvm-svn: 122513
-
Chris Lattner authored
llvm-svn: 122509
-
Benjamin Kramer authored
Remove/fix invalid README entries. The well thought out strcpy function doesn't return a pointer to the end of the string. llvm-svn: 122496
-
Benjamin Kramer authored
llvm-svn: 122495
-
Jeffrey Yasskin authored
new gcc warning that complains on self-assignments and self-initializations. llvm-svn: 122458
-
Jim Grosbach authored
llvm-svn: 122456
-
Benjamin Kramer authored
int test(unsigned long a, unsigned long b) { return -(a < b); } compiles to _test: ## @test cmpq %rsi, %rdi ## encoding: [0x48,0x39,0xf7] sbbl %eax, %eax ## encoding: [0x19,0xc0] ret ## encoding: [0xc3] instead of _test: ## @test xorl %ecx, %ecx ## encoding: [0x31,0xc9] cmpq %rsi, %rdi ## encoding: [0x48,0x39,0xf7] movl $-1, %eax ## encoding: [0xb8,0xff,0xff,0xff,0xff] cmovael %ecx, %eax ## encoding: [0x0f,0x43,0xc1] ret ## encoding: [0xc3] llvm-svn: 122451
-
- Dec 22, 2010
-
-
Che-Liang Chiou authored
llvm-svn: 122398
-
Wesley Peck authored
llvm-svn: 122385
-
Wesley Peck authored
llvm-svn: 122384
-
Wesley Peck authored
llvm-svn: 122381
-
Wesley Peck authored
llvm-svn: 122379
-
- Dec 21, 2010
-
-
Benjamin Kramer authored
(add Y, (sete X, 0)) -> cmp X, 1; adc 0, Y (add Y, (setne X, 0)) -> cmp X, 1; sbb -1, Y (sub (sete X, 0), Y) -> cmp X, 1; sbb 0, Y (sub (setne X, 0), Y) -> cmp X, 1; adc -1, Y for unsigned foo(unsigned a, unsigned b) { if (a == 0) b++; return b; } we now get: foo: cmpl $1, %edi movl %esi, %eax adcl $0, %eax ret instead of: foo: testl %edi, %edi sete %al movzbl %al, %eax addl %esi, %eax ret llvm-svn: 122364
-
Bob Wilson authored
Type legalization splits up i64 values into pairs of i32 values, which leads to poor quality code when inserting or extracting i64 vector elements. If the vector element is loaded or stored, it can be treated as an f64 value and loaded or stored directly from a VPR register. Use the pre-legalization DAG combiner to cast those vector elements to f64 types so that the type legalizer won't mess them up. Radar 8755338. llvm-svn: 122319
-
Eric Christopher authored
Fixes rdar://8782223 llvm-svn: 122313
-
Chris Lattner authored
something that just glues two nodes together, even if it is sometimes used for flags. llvm-svn: 122310
-