- Mar 02, 2011
-
-
Jakob Stoklund Olesen authored
The value map is currently not used, all values are 'complex mapped' and LiveIntervalMap::mapValue is used to dig them out. This is the first step in a series changes leading to the removal of LiveIntervalMap. Its data structures can be shared among all the live intervals created by a split, so it is wasteful to create a copy for each. llvm-svn: 126800
-
Jakob Stoklund Olesen authored
Local live range splitting is better driven by interference. This code was just guessing. llvm-svn: 126799
-
Jakob Stoklund Olesen authored
This is a waste of time since we already know how to evict all interferences which is a better approach anyway. llvm-svn: 126798
-
Ted Kremenek authored
llvm-svn: 126797
-
Oscar Fuentes authored
Patch by Erik Olofsson! llvm-svn: 126796
-
- Mar 01, 2011
-
-
Devang Patel authored
This fixes few blocks.exp regressions. llvm-svn: 126795
-
Devang Patel authored
llvm-svn: 126794
-
Devang Patel authored
Today, the language front ends produces llvm.dbg.* intrinsics, used to encode arguments' debug info, in order any way, most of the times. However, if a front end mix-n-matches llvm.dbg.declare and llvm.dbg.value intrinsics to encode debug info for arguments then code generator needs a way to find argument order. Use 8 bits from line number field to keep track of argument ordering while encoding debug info for an argument. That leaves 24 bit for line no, DebugLoc also allocates 24 bit for line numbers. If a function has more than 255 arguments then rest of the arguments will be ordered by llvm.dbg.* intrinsics' ordering in IR. llvm-svn: 126793
-
Johnny Chen authored
among other SBProcess APIs, to write (int)256 into a memory location of a global variable (int)my_int and reads/checks the variable afterwards. llvm-svn: 126792
-
Benjamin Kramer authored
compare it with getDriver().Dir.c_str(), since that is a pointer comparison, not a "are these strings equal" comparison. Instead, just compare with getDriver().Dir directly, so both sides will get promoted to std::string, and the regular std::string comparison operator applies. Patch by Dimitry Andric! llvm-svn: 126791
-
Oscar Fuentes authored
On the first cmake run before the caches has been updated with the default options, options defined after HandleLLVMOptions are always treated as off inside HandleLLVMOptions. Patch by Erik Olofsson! llvm-svn: 126790
-
Caroline Tice authored
Add code to emulate LDRSB (literal) Arm instruction. llvm-svn: 126789
-
Dan Gohman authored
llvm-svn: 126788
-
Dan Gohman authored
which constructs a diagnostic with no line to show. llvm-svn: 126787
-
Dan Gohman authored
llvm-svn: 126786
-
Dan Gohman authored
llvm-svn: 126785
-
Dan Gohman authored
a StringRef, for the benefit of clients that want the result as a nul-terminated string. Clients that expect a StringRef will get one via the implicit conversion. llvm-svn: 126784
-
Caroline Tice authored
Add code to emulate LDRSB (immediate) Arm instruction. llvm-svn: 126783
-
Cameron Zwarich authored
addressing code. On 403.gcc this almost halves CodeGenPrepare time and reduces total llc time by 9.5%. Unfortunately, getNumUses() is still the hottest function in llc. llvm-svn: 126782
-
Jakob Stoklund Olesen authored
This effectively disables the 'turbo' functionality of the greedy register allocator where all new live ranges created by splitting would be reconsidered as if they were originals. There are two reasons for doing this, 1. It guarantees that the algorithm terminates. Early versions were prone to infinite looping in certain corner cases. 2. It is a 2x speedup. We can skip a lot of unnecessary interference checks that won't lead to good splitting anyway. The problem is that region splitting only gets one shot, so it should probably be changed to target multiple physical registers at once. Local live range splitting is still 'turbo' enabled. It only accounts for a small fraction of compile time, so it is probably not necessary to do anything about that. llvm-svn: 126781
-
Duncan Sands authored
llvm-svn: 126780
-
Ted Kremenek authored
Don't warn about unused values in ternary ?: expressions unless both the LHS and RHS are "unused" (side-effect free). Patch by Justin Bogner! Fixes PR 8282. llvm-svn: 126779
-
Douglas Gregor authored
template specialization types. There are still a few rough edges to clean up with some of the parser actions dropping nested-name-specifiers too early. llvm-svn: 126776
-
Douglas Gregor authored
llvm-svn: 126775
-
Johnny Chen authored
llvm-svn: 126774
-
Dan Gohman authored
llvm-svn: 126773
-
Dan Gohman authored
llvm-svn: 126772
-
Ted Kremenek authored
llvm-svn: 126770
-
Johnny Chen authored
This makes the number of total tests equal to 201. llvm-svn: 126769
-
Roman Divacky authored
llvm-svn: 126768
-
Daniel Dunbar authored
llvm-svn: 126767
-
Ted Kremenek authored
llvm-svn: 126766
-
Douglas Gregor authored
nested-name-speciciers within elaborated type names, e.g., enum clang::NestedNameSpecifier::SpecifierKind Fixes in this iteration include: (1) Compute the type-source range properly for a dependent template specialization type that starts with "template template-id ::", as in a member access expression dep->template f<T>::f() This is a latent bug I triggered with this change (because now we're checking the computed source ranges for dependent template specialization types). But the real problem was... (2) Make sure to set the qualifier range on a dependent template specialization type appropriately. This will go away once we push nested-name-specifier locations into dependent template specialization types, but it was the source of the valgrind errors on the buildbots. llvm-svn: 126765
-
Roman Divacky authored
Patch by Dimitry Andric! llvm-svn: 126763
-
Ted Kremenek authored
llvm-svn: 126762
-
Roman Divacky authored
path. This avoids accidentally including the wrong headers. Patch by Dimitry Andric! llvm-svn: 126761
-
Roman Divacky authored
ToolChain's FilePaths. If clang is installed as a port in /usr/local, it is *not* supposed to use /usr/local/lib by default, for example. Additionally, there are no clang-related executables in either /usr/libexec, or getDriver().Dir + "/../libexec", anymore, so remove that from the ToolChain's ProgramPaths. Patch by Dimitry Andric! llvm-svn: 126760
-
Talin authored
llvm-svn: 126759
-
Caroline Tice authored
Add code to emulate LDRH (register) Arm instruction. llvm-svn: 126758
-
Roman Divacky authored
retrieve the library paths from the ToolChain object instead. Copy the relevant code from linuxtools::Link::ConstructJob(), and replace the std::string stuff with llvm::StringRef, while we're here. Patch by Dimitry Andric! llvm-svn: 126757
-