- Mar 15, 2012
-
-
Eric Christopher authored
llvm-svn: 152842
-
Eric Christopher authored
llvm-svn: 152841
-
Nadav Rotem authored
When optimizing certain BUILD_VECTOR nodes into other BUILD_VECTOR nodes, add the new node into the work list because there is a potential for further optimizations. llvm-svn: 152784
-
Eric Christopher authored
out the DW_AT_name. Older gdbs unfortunately still use it to disambiguate member functions in templated classes (gdb.cp/templates.exp). rdar://11043421 (which is now deferred for a bit) llvm-svn: 152782
-
Bill Wendling authored
Transform: (fsub x, (fadd x, y)) -> (fneg y) and (fsub x, (fadd y, x)) -> (fneg y) if 'unsafe math' is specified. <rdar://problem/7540295> llvm-svn: 152777
-
- Mar 14, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152711
-
Bill Wendling authored
There were cases where a value could be used and it's both crossing an invoke and NOT crossing an invoke. This could happen in the landing pads. In that case, we will demote the value to the stack like we did before. <rdar://problem/10609139> llvm-svn: 152705
-
Bill Wendling authored
expensive "getFirstTerminator" call. This reduces the time of compilation in PR12258 from >10 minutes to < 10 seconds. llvm-svn: 152704
-
Andrew Trick authored
New flags: -misched-topdown, -misched-bottomup. They can be used with the default scheduler or with -misched=shuffle. Without either topdown/bottomup flag -misched=shuffle now alternates scheduling direction. LiveIntervals update is unimplemented with bottom-up scheduling, so only -misched-topdown currently works. Capped the ScheduleDAG hierarchy with a concrete ScheduleDAGMI class. ScheduleDAGMI is aware of the top and bottom of the unscheduled zone within the current region. Scheduling policy can be plugged into the ScheduleDAGMI driver by implementing MachineSchedStrategy. ConvergingScheduler is now the default scheduling algorithm. It exercises the new driver but still does no reordering. llvm-svn: 152700
-
Andrew Trick authored
llvm-svn: 152699
-
Eric Christopher authored
output (we're emitting a specification already and the information isn't changing). Saves 1% on the debug information for a build of llvm. Fixes rdar://11043421 llvm-svn: 152697
-
- Mar 13, 2012
-
-
Evan Cheng authored
Fortify r152675 a bit. Although I'm not able to come up with a test case that would trigger the truncation case. llvm-svn: 152678
-
Evan Cheng authored
(i16 load $addr+c*sizeof(i16)) and replace uses of (i32 vextract) with the i16 load. It should issue an extload instead: (i32 extload $addr+c*sizeof(i16)). rdar://11035895 llvm-svn: 152675
-
Bill Wendling authored
No functionality change. llvm-svn: 152658
-
Bill Wendling authored
llvm-svn: 152614
-
Bill Wendling authored
llvm-svn: 152613
-
Bill Wendling authored
No functionality change. llvm-svn: 152611
-
Lang Hames authored
llvm-svn: 152610
-
- Mar 12, 2012
-
-
Bill Wendling authored
--- Reverse-merging r152486 into '.': U lib/CodeGen/SjLjEHPrepare.cpp llvm-svn: 152571
-
- Mar 11, 2012
-
-
Benjamin Kramer authored
DwarfDebug: Store the filename/dirname pair as a zero-separated string in a stringmap, instead of using a highly inefficient std::map of a pair of std::strings. llvm-svn: 152541
-
Stepan Dyatkovskiy authored
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. llvm-svn: 152532
-
- Mar 10, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152492
-
Bill Wendling authored
The old way of determine when and where to spill a value that was used inside of a landing pad resulted in spilling that value everywhere and not just at the invoke edge. This algorithm determines which values are used within a landing pad. It then spills those values before the invoke and reloads them before the uses. This should prevent excessive spilling in many cases, e.g. inside of loops. <rdar://problem/10609139> llvm-svn: 152486
-
Jakob Stoklund Olesen authored
llvm-svn: 152460
-
Jakob Stoklund Olesen authored
Somehow we never verified SSA dominance before. llvm-svn: 152458
-
Jakob Stoklund Olesen authored
llvm-svn: 152457
-
Benjamin Kramer authored
llvm-svn: 152454
-
Jakob Stoklund Olesen authored
All uses of a virtual register must be dominated by its def. llvm-svn: 152449
-
- Mar 09, 2012
-
-
Andrew Trick authored
And add comments, since this is obviously confusing. llvm-svn: 152445
-
Andrew Trick authored
llvm-svn: 152393
-
Andrew Trick authored
llvm-svn: 152382
-
Andrew Trick authored
llvm-svn: 152374
-
Andrew Trick authored
llvm-svn: 152373
-
Andrew Trick authored
llvm-svn: 152360
-
Evan Cheng authored
llvm-svn: 152356
-
- Mar 08, 2012
-
-
Craig Topper authored
llvm-svn: 152301
-
Stepan Dyatkovskiy authored
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120130/136146.html Implemented CaseIterator and it solves almost all described issues: we don't need to mix operand/case/successor indexing anymore. Base iterator class is implemented as a template since it may be initialized either from "const SwitchInst*" or from "SwitchInst*". ConstCaseIt is just a read-only iterator. CaseIt is read-write iterator; it allows to change case successor and case value. Usage of iterator allows totally remove resolveXXXX methods. All indexing convertions done automatically inside the iterator's getters. Main way of iterator usage looks like this: SwitchInst *SI = ... // intialize it somehow for (SwitchInst::CaseIt i = SI->caseBegin(), e = SI->caseEnd(); i != e; ++i) { BasicBlock *BB = i.getCaseSuccessor(); ConstantInt *V = i.getCaseValue(); // Do something. } If you want to convert case number to TerminatorInst successor index, just use getSuccessorIndex iterator's method. If you want initialize iterator from TerminatorInst successor index, use CaseIt::fromSuccessorIndex(...) method. There are also related changes in llvm-clients: klee and clang. llvm-svn: 152297
-
Andrew Trick authored
Allow targets to provide their own schedulers (subclass of ScheduleDAGInstrs) to the misched pass. Select schedulers using -misched=... llvm-svn: 152278
-
Andrew Trick authored
llvm-svn: 152262
-
Andrew Trick authored
implement their own MachineScheduler. llvm-svn: 152261
-