- Jan 14, 2011
-
-
Douglas Gregor authored
involve template parameter packs at multiple template levels that occur within the signatures members of class templates (and partial specializations thereof). This is a work-in-progress that is deficient in several ways, notably: - It only works for template type parameter packs, but we need to also support non-type template parameter packs and template template parameter packs. - It doesn't keep track of the lengths of the substituted argument packs in the expansion, so it can't properly diagnose length mismatches. However, this is a concrete step in the right direction. llvm-svn: 123425
-
Evan Cheng authored
- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first. - Added support for Thumb2 :lower16: and :upper16: fix up. - Added :upper16: and :lower16: relocation support to mach-o object writer. llvm-svn: 123424
-
Jakob Stoklund Olesen authored
llvm-svn: 123423
-
Chris Lattner authored
llvm-svn: 123422
-
Ken Dyck authored
llvm-svn: 123421
-
Chris Lattner authored
they should go *before* the new instruction not after it. llvm-svn: 123420
-
Jakob Stoklund Olesen authored
Fix some callers to better deal with debug values. llvm-svn: 123419
-
Owen Anderson authored
most important simplifications, as well as resolving phase ordering issues where instcombine would inhibit important CSE'ing opportunities, for instance on BitBench/drop3. llvm-svn: 123418
-
Duncan Sands authored
While there, I noticed that the transform "undef >>a X -> undef" was wrong. For example if X is 2 then the top two bits must be equal, so the result can not be anything. I fixed this in the constant folder as well. Also, I made the transform for "X << undef" stronger: it now folds to undef always, even though X might be zero. This is in accordance with the LangRef, but I must admit that it is fairly aggressive. Also, I added "i32 X << 32 -> undef" following the LangRef and the constant folder, likewise fairly aggressive. llvm-svn: 123417
-
Owen Anderson authored
Don't bother conditionalizing the use of SROA in -O1 mode. We're already running it unconditionally later in the pipeline. llvm-svn: 123416
-
Caroline Tice authored
exist within the same process (one script interpreter object per debugger object). The python script interpreter objects are all using the same global Python script interpreter; they use separate dictionaries to keep their data separate, and mutex's to prevent any object attempting to use the global Python interpreter when another object is already using it. llvm-svn: 123415
-
Chris Lattner authored
after sext's generated for addressing that got folded. Previously we compiled test5 into: _test5: ## @test5 ## BB#0: movq -8(%rsp), %rax ## 8-byte Reload movq (%rdi,%rax), %rdi addq %rdx, %rdi movslq %esi, %rax movq %rax, -8(%rsp) ## 8-byte Spill movq %rdi, %rax ret which is insane and wrong. Now we produce: _test5: ## @test5 ## BB#0: movslq %esi, %rax movq (%rdi,%rax), %rax addq %rdx, %rax ret llvm-svn: 123414
-
Jakob Stoklund Olesen authored
This approach also works when the terminator doesn't have a slot index. (Which can happen??) llvm-svn: 123413
-
Francois Pichet authored
llvm-svn: 123412
-
Evan Cheng authored
llvm-svn: 123411
-
Tobias Grosser authored
Add methods for accessing the (single) entry / exit edge of a region. If no such edge exists, null is returned. Both accessors return the start block of the corresponding edge. The edge can finally be formed by utilizing Region::getEntry() or Region::getExit(); Contributed by: Andreas Simbuerger <simbuerg@fim.uni-passau.de> llvm-svn: 123410
-
- Jan 13, 2011
-
-
Owen Anderson authored
Fixes <rdar://problem/8857982>. llvm-svn: 123409
-
Jakob Stoklund Olesen authored
llvm-svn: 123408
-
Owen Anderson authored
llvm-svn: 123407
-
Chris Lattner authored
llvm-svn: 123406
-
Chris Lattner authored
llvm-svn: 123405
-
Owen Anderson authored
the symbolic immediate names used for these instructions, fixing their pretty-printers, and adding proper encoding information for them. With this, we can properly pretty-print and encode assembly like: mrc p15, #0, r3, c13, c0, #3 Fixes <rdar://problem/8857858>. llvm-svn: 123404
-
Evan Cheng authored
Relax an assertion. On archs like ARM, an immediate field may be scattered. So it's possible for some bits of every 8 bits to be encoded already, and the rest still needs to be fixed up. llvm-svn: 123403
-
Fariborz Jahanian authored
for efficiancy (still part of //rdar://8761767). Per John's comment. llvm-svn: 123401
-
Jakob Stoklund Olesen authored
llvm-svn: 123400
-
Jakob Stoklund Olesen authored
llvm-svn: 123399
-
Sean Callanan authored
variables. llvm-svn: 123398
-
Bob Wilson authored
llvm-svn: 123397
-
Bob Wilson authored
llvm-svn: 123396
-
Ted Kremenek authored
llvm-svn: 123395
-
Ted Kremenek authored
dead stores within nested assignments. I have never seen an actual bug found by this specific warning, and it can lead to many false positives. llvm-svn: 123394
-
Kevin Enderby authored
directional local labels like 1f and 2b. llvm-svn: 123393
-
Howard Hinnant authored
llvm-svn: 123392
-
Fariborz Jahanian authored
assigns. // rdar://8761767 llvm-svn: 123391
-
Devang Patel authored
Patch by Bob Wilson. llvm-svn: 123390
-
Devang Patel authored
llvm-svn: 123389
-
Oscar Fuentes authored
Patch by arrowdodger! llvm-svn: 123388
-
Jim Grosbach authored
set up the source operands. The original instr has an immediate operand that should be replaced with the frame reg operand rather than just adding the reg operand. Previously, the instruction ended up with too many operands causing an assert() when adding the default predicate. rdar://8825456 llvm-svn: 123387
-
Peter Collingbourne authored
process, perform a number of refactorings: - Move MiscNameMangler member functions to MangleContext - Remove GlobalDecl dependency from MangleContext - Make MangleContext abstract and move Itanium/Microsoft functionality to their own classes/files - Implement ASTContext::createMangleContext and have CodeGen use it No (intended) functionality change. llvm-svn: 123386
-
Douglas Gregor authored
when we're actually matching a template template argument to a template template parameter. Otherwise, use strict matching. Fixes <rdar://problem/8859985> clang++: variadics and out-of-line definitions. llvm-svn: 123385
-