summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert r127112, "Propagate new-style exception spec information to ↵NAKAMURA Takumi2011-03-0611-45/+50
| | | | | | | | ExtProtoInfo." It seems missing "clang/Basic/ExceptionSpecificationType.h". llvm-svn: 127115
* lib/CodeGen/AsmPrinter/CMakeLists.txt: Fix CMake build, following up to r127099.NAKAMURA Takumi2011-03-061-0/+1
| | | | llvm-svn: 127114
* Disable a couple of experimental heuristics to get the best results from the ↵Andrew Trick2011-03-061-2/+2
| | | | | | current implementation of -pre-RA-sched=list-ilp. llvm-svn: 127113
* Propagate new-style exception spec information to ExtProtoInfo.Sebastian Redl2011-03-0511-50/+45
| | | | llvm-svn: 127112
* Propagate new-style exception spec information to Declarator.Sebastian Redl2011-03-056-70/+93
| | | | llvm-svn: 127111
* Avoid zero-sized allocations when copying a fresh DenseMap.Benjamin Kramer2011-03-051-5/+11
| | | | llvm-svn: 127110
* Revert r127079: "test/Makefile: Use $(ECHOPATH) to make lit.site.cfg(s)."Benjamin Kramer2011-03-051-22/+20
| | | | | | It depends on LLVM r127073 that was reverted and is now blocking "make test" llvm-svn: 127109
* When substituting in for a template name, do not produce a qualifiedDouglas Gregor2011-03-052-2/+9
| | | | | | | | | | | template name as the result of substitution. The qualifier is handled separately by the tree transformer, so we would end up in an inconsistent state. This is actually the last bit of PR9016, and possibly also fixes PR8965. It takes Boost.Icl from "epic fail" down to a single failure. llvm-svn: 127108
* Revert r127073: "Introduce $(ECHOPATH) to print DOSish path string on MSYS ↵Jakob Stoklund Olesen2011-03-053-41/+20
| | | | | | | | | | bash for alternative of $(ECHO)." It broke the llvm-gcc-native-mingw32 buildbot, and we need all of them to be green for the 2.9 branch. Takumi, please reapply after we branch, preferably with a fix ;-) llvm-svn: 127107
* ARM assembler stuff is crazy: for .setfp positive values of offset ↵Anton Korobeynikov2011-03-051-3/+4
| | | | | | corresponds to "add" instruction, not to "sub" as in .pad case llvm-svn: 127106
* In Thumb1 mode the constant might be materialized via the load from ↵Anton Korobeynikov2011-03-052-5/+19
| | | | | | constpool. Emit unwinding information in case when this load from constpool is used to change the stack pointer in the prologue. llvm-svn: 127105
* Implement frame unwinding information emission for Thumb1. Not finished yet ↵Anton Korobeynikov2011-03-058-52/+82
| | | | | | because there is no way given the constpool index to examine the actual entry: the reason is clones inserted by constant island pass, which are not tracked at all! The only connection is done during asmprinting time via magic label names which is really gross and needs to be eventually fixed. llvm-svn: 127104
* Add unwind information emission for thumb stuffAnton Korobeynikov2011-03-051-3/+29
| | | | llvm-svn: 127103
* Handle MI flags inside Thumb2SizeReduction pass.Anton Korobeynikov2011-03-051-0/+9
| | | | llvm-svn: 127102
* Preliminary support for ARM frame save directives emission via MI flags.Anton Korobeynikov2011-03-0518-50/+215
| | | | | | | This is just very first approximation how the stuff should be done (e.g. ARM-only for now). More to follow. llvm-svn: 127101
* Provide hooks to set MI flags in MachineInstrBuilderAnton Korobeynikov2011-03-051-0/+10
| | | | llvm-svn: 127100
* Some first rudimentary support for ARM EHABI: print exception table in "text ↵Anton Korobeynikov2011-03-0510-3/+205
| | | | | | mode". llvm-svn: 127099
* Add FrameSetup MI flagsAnton Korobeynikov2011-03-052-13/+54
| | | | llvm-svn: 127098
* Shorten AsmPrinterFlags filed to accomodate for future Flags fieldAnton Korobeynikov2011-03-051-3/+3
| | | | llvm-svn: 127097
* Work around a coalescer bug.Jakob Stoklund Olesen2011-03-052-4/+23
| | | | | | | | | | | | The coalescer can in very rare cases leave too large live intervals around after rematerializing cheap-as-a-move instructions. Linear scan doesn't really care, but live range splitting gets very confused when a live range is killed by a ghost instruction. I will fix this properly in the coalescer after 2.9 branches. llvm-svn: 127096
* Fixed LabelDecl source range and cleaned creation code.Abramo Bagnara2011-03-057-36/+57
| | | | llvm-svn: 127094
* When determining template instantiation arguments within a functionDouglas Gregor2011-03-054-38/+95
| | | | | | | | | | | template (not a specialization!), use the "injected" function template arguments, which correspond to the template parameters of the function template. This is required when substituting into the default template parameters of template template parameters within a function template. Fixes PR9016. llvm-svn: 127092
* When transforming a substituted template type parameter, try toDouglas Gregor2011-03-052-1/+48
| | | | | | | | | | | | | | | transform the type that replaces the template type parameter. In the vast majority of cases, there's nothing to do, because most template type parameters are replaced with something non-dependent that doesn't need further transformation. However, when we're dealing with the default template arguments of template template parameters, we might end up replacing a template parameter (of the template template parameter) with a template parameter of the enclosing template. This addresses part of PR9016, but not within function templates. That's a separate issue. llvm-svn: 127091
* Remove unused conditional negate operations.Bob Wilson2011-03-055-48/+0
| | | | llvm-svn: 127090
* InstCombine: We know the number of items initially added to the worklist ↵Benjamin Kramer2011-03-051-0/+1
| | | | | | map, reserve space early to avoid rehashing. llvm-svn: 127089
* Lazily allocate DenseMaps.Benjamin Kramer2011-03-051-3/+20
| | | | | | | | | | This makes lookup slightly more expensive but it's worth it, unused DenseMaps are common in LLVM code apparently. 1% speedup on clang -O3 bzip2.c 4% speedup on clang -O3 oggenc.c (Release build of clang on i386/linux) llvm-svn: 127088
* Normalize target triple passed out of driver. Basically this meansAnton Korobeynikov2011-03-051-1/+1
| | | | | | | | that at cc1 level we will always have normalized triple and thus can provide necessary default based on e.g. environment value (e.g. for "arm-eabi" triple, etc.) llvm-svn: 127087
* Parser support for noexcept specifications.Sebastian Redl2011-03-057-78/+200
| | | | llvm-svn: 127086
* Improved MemberPointerType source locations.Abramo Bagnara2011-03-055-13/+95
| | | | llvm-svn: 127085
* ptx: add basic intrinsic supportChe-Liang Chiou2011-03-056-2/+117
| | | | llvm-svn: 127084
* StringRefify.Benjamin Kramer2011-03-052-9/+10
| | | | llvm-svn: 127082
* test/lit.cfg: bash is available on MSYS.NAKAMURA Takumi2011-03-051-2/+3
| | | | llvm-svn: 127080
* test/Makefile: Use $(ECHOPATH) to make lit.site.cfg(s).NAKAMURA Takumi2011-03-051-20/+22
| | | | llvm-svn: 127079
* test/CodeGen/2008-07-17-no-emit-on-error.c: Use LLVM's opt instead of ↵NAKAMURA Takumi2011-03-051-2/+2
| | | | | | | | "test(1)" for Mingw MSYS. Mingw MSYS does not have test.exe (only shell built-in test), and is not capable to invoke test(1) from utils/not. llvm-svn: 127078
* test: Mark 3 tests as XFAIL:cygwin,mingw.NAKAMURA Takumi2011-03-052-1/+2
| | | | llvm-svn: 127077
* test: Mark two tests as XFAIL:mingw.NAKAMURA Takumi2011-03-052-2/+2
| | | | llvm-svn: 127076
* Be explicit with abs(). Visual Studio workaround.Andrew Trick2011-03-051-4/+6
| | | | llvm-svn: 127075
* utils/lit/lit/TestRunner.py: bash is available with MSYS on Python/W32. Then ↵NAKAMURA Takumi2011-03-051-5/+10
| | | | | | we can execute "bash tests". llvm-svn: 127074
* Introduce $(ECHOPATH) to print DOSish path string on MSYS bash for ↵NAKAMURA Takumi2011-03-053-20/+41
| | | | | | | | alternative of $(ECHO). On mingw and python/w32, lit would not be expected to understand MSYS-style path. llvm-svn: 127073
* On Windows hosts, Python scripts in test/Scripts did not accept binary files ↵NAKAMURA Takumi2011-03-051-0/+1
| | | | | | from stdin. The environment variable "PYTHONUNBUFFERED" makes stdin as binary. Thanks to Danil Malyshev! llvm-svn: 127072
* Fix for -sched-high-latency-cycles in sched=list-ilp mode.Andrew Trick2011-03-051-1/+3
| | | | llvm-svn: 127071
* Missing "virtual" keyword. Jakob's review.Andrew Trick2011-03-051-1/+1
| | | | llvm-svn: 127070
* Fix PR9398 - 10% of llc compile time is spent in Value::getNumUses. This reducesCameron Zwarich2011-03-051-7/+22
| | | | | | | the percentage of time spent in CodeGenPrepare when llcing 403.gcc from 12.6% to 1.8% of total llc time. llvm-svn: 127069
* Missing comment.Andrew Trick2011-03-051-0/+2
| | | | llvm-svn: 127068
* Increased the register pressure limit on x86_64 from 8 to 12Andrew Trick2011-03-056-30/+173
| | | | | | | | | | | | | | | | | | | | | | | regs. This is the only change in this checkin that may affects the default scheduler. With better register tracking and heuristics, it doesn't make sense to artificially lower the register limit so much. Added -sched-high-latency-cycles and X86InstrInfo::isHighLatencyDef to give the scheduler a way to account for div and sqrt on targets that don't have an itinerary. It is currently defaults to 10 (the actual number doesn't matter much), but only takes effect on non-default schedulers: list-hybrid and list-ilp. Added several heuristics that can be individually disabled for the non-default sched=list-ilp mode. This helps us determine how much better we can do on a given benchmark than the default scheduler. Certain compute intensive loops run much faster in this mode with the right set of heuristics, and it doesn't seem to have much negative impact elsewhere. Not all of the heuristics are needed, but we still need to experiment to decide which should be disabled by default for sched=list-ilp. llvm-svn: 127067
* remove jeff's name (by his request)Chris Lattner2011-03-051-3/+1
| | | | llvm-svn: 127066
* whitespaceAndrew Trick2011-03-051-51/+51
| | | | llvm-svn: 127065
* Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw wheneverNick Lewycky2011-03-054-1/+109
| | | | | | | | | possible. This goes into instcombine and instsimplify because instsimplify doesn't need to check hasOneUse since it returns (almost exclusively) constants. This fixes PR9343 #4 #5 and #8! llvm-svn: 127064
* Try once again to optimize "icmp (srem X, Y), Y" by turning the comparison intoNick Lewycky2011-03-052-0/+45
| | | | | | true/false or "icmp slt/sge Y, 0". llvm-svn: 127063
* Rework the global split cost calculation.Jakob Stoklund Olesen2011-03-051-21/+30
| | | | | | | The global cost is the sum of block frequencies for spill code that must be inserted because preferences weren't met. llvm-svn: 127062
OpenPOWER on IntegriCloud