- Jun 17, 2009
-
-
Anton Korobeynikov authored
Patch by Viktor Kutuzov and Anton Korzh from Access Softek, Inc. llvm-svn: 73622
-
Dan Gohman authored
llvm-svn: 73621
-
Owen Anderson authored
llvm-svn: 73620
-
Owen Anderson authored
We need to guard reads of the AbstractTypeUsers list, as well as writes to it. While it would be nice to use a R/W lock here, we can't, because it HAS to be recursive. llvm-svn: 73617
-
Douglas Gregor authored
llvm-svn: 73615
-
Owen Anderson authored
llvm-svn: 73614
-
Owen Anderson authored
lock. This is obviously bad, but at least it's threadsafe! If you know how to improve this in a pre-Vista friendly well, patches welcome! Patch by Max Burke. llvm-svn: 73607
-
Sanjiv Gupta authored
>> What if my global variable was into a different address space than stack? >> > > It doesn't matter in terms of semantics: because AnalyzeGlobal > returned false, we're guaranteed the address of the global is never > taken. I wouldn't be surprised if we end up generating invalid IR in > some cases, though, because of the semantics of replaceAllUsesWith. > Do you have a testcase that breaks? > > The problem is replaceAllUsesWith asserts for type mismatch here. Try attached .bc with llvm-ld. assert(New->getType() == getType() && "replaceAllUses of value with new value of different type!"); Since stack is always on address space zero, I don't think that type of GV in a different address space is ever going to match. The other way is to allow replaceAllUsesWith to ignore address spaces while comparing types. (do we have a way to do that ?). But then such an optimization may fail the entire idea of user wanting to place a variable into different memory space. The original idea of user might be to save on the stack space (data memory) and hence he asked the variable to be placed into different memory space (program memory). So the best bet here is to deny this optimization by checking GV->getType()->getAddressSpace() == 0. llvm-svn: 73605
-
Eli Friedman authored
SRem. llvm-svn: 73598
-
Dan Gohman authored
that gets recognized with a SCEVZeroExtendExpr must be an And with a low-bits mask. With r73540, this is no longer the case. llvm-svn: 73594
-
Devang Patel authored
Do not use first actual instruction's location for prologue. The debug wants to skip prologue while setting a breakpoint for the function. llvm-svn: 73592
-
Owen Anderson authored
llvm-svn: 73588
-
Owen Anderson authored
thread-safe reference counting. llvm-svn: 73587
-
Owen Anderson authored
llvm-svn: 73586
-
Owen Anderson authored
Use a reader-writer lock to guard large portions of the Type infrastructure, including abstract type refinement. There's still some more work to be done here, such as guarding removeAbstractTypeUser() and the printers. llvm-svn: 73575
-
Chris Lattner authored
and its asmprinter. llvm-svn: 73573
-
Chris Lattner authored
Calling into createJIT directly creates a circular dependency between libjit and lib ee. llvm-svn: 73567
-
- Jun 16, 2009
-
-
Owen Anderson authored
llvm-svn: 73552
-
Owen Anderson authored
llvm-svn: 73551
-
Owen Anderson authored
llvm-svn: 73550
-
Owen Anderson authored
llvm-svn: 73546
-
Owen Anderson authored
llvm-svn: 73545
-
Douglas Gregor authored
initialization of all targets (InitializeAllTargets.h) or assembler printers (InitializeAllAsmPrinters.h). This is a step toward the elimination of relinked object files, so that we can build normal archives. llvm-svn: 73543
-
Dan Gohman authored
llvm-svn: 73541
-
Dan Gohman authored
obscuring what would otherwise be a low-bits mask. Use ComputeMaskedBits to compute what ShrinkDemandedConstant knew about to reconstruct a low-bits mask value. llvm-svn: 73540
-
Evan Cheng authored
llvm-svn: 73536
-
Anton Korobeynikov authored
Dispatch C calling conv. to one of these conventions based on target triple and subtarget features. llvm-svn: 73530
-
Anton Korobeynikov authored
(this is the case when we have thumb vararg function with single callee-saved register, which is handled separately). llvm-svn: 73529
-
Douglas Gregor authored
llvm-svn: 73516
-
Owen Anderson authored
calls for convenience. llvm-svn: 73512
-
Chris Lattner authored
to ignore readonly calls, and factor it out of instcombine so that it can be used by other passes. Patch by Frits van Bommel! llvm-svn: 73506
-
Sanjiv Gupta authored
llvm-svn: 73491
-
Sanjiv Gupta authored
llvm-svn: 73483
-
Sanjiv Gupta authored
llvm-svn: 73481
-
Sanjiv Gupta authored
llvm-svn: 73480
-
Evan Cheng authored
llvm-svn: 73479
-
Evan Cheng authored
If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead. TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block. llvm-svn: 73478
-
Eli Friedman authored
support for x86, and UMULO/SMULO for many architectures, including PPC (PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's not bad. llvm-svn: 73477
-
Eli Friedman authored
llvm-svn: 73476
-
Chris Lattner authored
llvm-svn: 73472
-