- Dec 13, 2010
-
-
Chris Lattner authored
llvm-svn: 121678
-
Evan Cheng authored
llvm-svn: 121677
-
Chris Lattner authored
llvm-svn: 121676
-
Chris Lattner authored
llvm-svn: 121675
-
Chris Lattner authored
bootstrap buildbot tripped over. llvm-svn: 121674
-
Chris Lattner authored
llvm-svn: 121673
-
Chris Lattner authored
llvm-svn: 121672
-
Chris Lattner authored
or'd conditions. Previously we'd compile something like this: int crud (unsigned char c) { return c == 62 || c == 34 || c == 92; } into: switch i8 %c, label %lor.rhs [ i8 62, label %lor.end i8 34, label %lor.end ] lor.rhs: ; preds = %entry %cmp8 = icmp eq i8 %c, 92 br label %lor.end lor.end: ; preds = %entry, %entry, %lor.rhs %0 = phi i1 [ true, %entry ], [ %cmp8, %lor.rhs ], [ true, %entry ] %lor.ext = zext i1 %0 to i32 ret i32 %lor.ext which failed to merge the compare-with-92 into the switch. With this patch we simplify this all the way to: switch i8 %c, label %lor.rhs [ i8 62, label %lor.end i8 34, label %lor.end i8 92, label %lor.end ] lor.rhs: ; preds = %entry br label %lor.end lor.end: ; preds = %entry, %entry, %entry, %lor.rhs %0 = phi i1 [ true, %entry ], [ false, %lor.rhs ], [ true, %entry ], [ true, %entry ] %lor.ext = zext i1 %0 to i32 ret i32 %lor.ext which is much better for codegen's switch lowering stuff. This kicks in 33 times on 176.gcc (for example) cutting 103 instructions off the generated code. llvm-svn: 121671
-
Chris Lattner authored
llvm-svn: 121670
-
Chris Lattner authored
llvm-svn: 121669
-
Chris Lattner authored
location in simplifycfg. In the old days, SimplifyCFG was never run on the entry block, so we had to scan over all preds of the BB passed into simplifycfg to do this xform, now we can just check blocks ending with a condbranch. This avoids a scan over all preds of every simplified block, which should be a significant compile-time perf win on functions with lots of edges. No functionality change. llvm-svn: 121668
-
Chris Lattner authored
llvm-svn: 121667
-
Bill Wendling authored
class A<bit a, bits<3> x, bits<3> y> { bits<3> z; let z = !if(a, x, y); } The variable z will get the value of x when 'a' is 1 and 'y' when a is '0'. llvm-svn: 121666
-
Chandler Carruth authored
cases. First, omit all builtin overloads when no non-record type is in the set of candidate types. Second, avoid arithmetic type overloads for non-arithmetic or enumeral types (counting vector types as arithmetic due to Clang extensions). When heavily using constructs such as STL's '<<' based stream logging, this can have a significant impact. One logging-heavy test case's compile time dropped by 10% with this. Self-host shows 1-2% improvement in compile time, but that's likely in the noise. llvm-svn: 121665
-
Chris Lattner authored
llvm-svn: 121664
-
Sean Callanan authored
very minor changes, changing how we get the target type from a TypedefType, adding a parameter to EnumDecl::Create(), and other minor tweaks. llvm-svn: 121663
-
Chris Lattner authored
llvm-svn: 121662
-
Bill Wendling authored
llvm-svn: 121661
-
Bill Wendling authored
llvm-svn: 121660
-
Chris Lattner authored
llvm-svn: 121659
-
Chris Lattner authored
llvm-svn: 121658
-
Chris Lattner authored
llvm-svn: 121657
-
Chris Lattner authored
llvm-svn: 121656
-
Howard Hinnant authored
llvm-svn: 121655
-
Peter Collingbourne authored
llvm-svn: 121654
-
Peter Collingbourne authored
llvm-svn: 121653
-
- Dec 12, 2010
-
-
Wesley Peck authored
llvm-svn: 121652
-
Wesley Peck authored
llvm-svn: 121651
-
Wesley Peck authored
MBlaze delay slot filler was not capable of using ADDK and variants to fill delay slots. This broke several test cases when 121649 was committed. This fixes the regression. llvm-svn: 121650
-
Wesley Peck authored
The ADD and ADDK (and all variants) instructions where flip-flopped in the MBlaze backend. This bug fix makes 64-bit math work on the MBlaze backend. llvm-svn: 121649
-
Tobias Grosser authored
Thanks Peter for pointing me to something that should have never been committed to the llvm code base. llvm-svn: 121648
-
Greg Clayton authored
Fixed a multi-threaded race condition that could happen when communication classes are shutting down. We currently don't protect communication connection classes against multi-threaded access. The connection is stored in the lldb_private::Communication.m_connection_ap auto_ptr member. We either need to add protections when accessing this class or not let anything racy occur. With this fix, we are doing the latter. llvm-svn: 121647
-
Peter Collingbourne authored
llvm-svn: 121646
-
Peter Collingbourne authored
autoconf directory, but these paths need to be relative to the main source directory. Patch originally by Dan Gohman, r67655. Also, cause configure.ac to find absolute paths to LLVM source and object trees. Together, fixes PR1220. llvm-svn: 121645
-
Chandler Carruth authored
a translation unit to the ActOnEndOfTranslationUnit function instead of doing it at the start of DefineUsedVTables. The latter is now called *recursively* during template instantiation, which causes an absolutely insane number of walks of every record decl in the translation unit. After this patch, an extremely template instantiation heavy test case's compile time drops by 10x, and we see between 15% and 20% improvement in average compile times across a project. This is just recovering a regression, it doesn't make anything faster than it was several weeks ago. llvm-svn: 121644
-
Greg Clayton authored
Fixed an issue where the macosx dynamic loader, on the first shared library loaded notification, wasn't properly removing shared libraries from the target that didn't get loaded. This usually happens when a different shared library is loaded in place of another due to DYLD_LIBRARY_PATH or DYLD_FRAMEWORK_PATH environment variables. We now properly remove any images that didn't make it into the executable. llvm-svn: 121641
-
Wesley Peck authored
llvm-svn: 121640
-
Wesley Peck authored
2. Make sure that the MBlaze stack is aligned to 4-byte boundaries. 3. Determine frame indexes that should be placed in the callers stack frame, as per the MBlaze ABI, and place them in the correct locations. llvm-svn: 121639
-
Greg Clayton authored
Added the ability for SBTarget to resolve load addresses (convert lldb::addr_t values into resolved SBAddress objects). These SBAddress objects can then be used to resolve a symbol context using "lldb::SBSymbolContext ResolveSymbolContextForAddress (const lldb::SBAddress& addr, uint32_t resolve_scope);". llvm-svn: 121638
-
Duncan Sands authored
catch this here rather than later after accessing uninitialized memory etc. Fires when compiling the testcase in PR8237. llvm-svn: 121635
-