summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix a regression from r125393;Nadav Rotem2011-02-132-2/+19
| | | | | | | | | | | | | It caused a crash in MultiSource/Benchmarks/Bullet. Opt hit an assertion with "opt -std-compile-opts" because Constant::getAllOnesValue doesn't know how to handle floats. This patch added a test to reproduce the problem and a check that the destination vector is of integer type. Thank you Benjamin! llvm-svn: 125459
* when legalizing extremely wide shifts, make sure that Chris Lattner2011-02-133-3/+21
| | | | | | | | | the shift amounts are in a suitably wide type so that we don't generate out of range constant shift amounts. This fixes PR9028. llvm-svn: 125458
* fix visitShift to properly zero extend the shift amount if the provided operandChris Lattner2011-02-133-23/+20
| | | | | | | is narrower than the shift register. Doing an anyext provides undefined bits in the top part of the register. llvm-svn: 125457
* improve solaris support, from PR9109, patch by Yuri!Chris Lattner2011-02-131-0/+5
| | | | llvm-svn: 125456
* add PR#Chris Lattner2011-02-131-0/+1
| | | | llvm-svn: 125455
* implement instcombine folding for things like (x >> c) < 42.Chris Lattner2011-02-132-10/+61
| | | | | | We were previously simplifying divisions, but not right shifts! llvm-svn: 125454
* add a helper method.Chris Lattner2011-02-131-0/+7
| | | | llvm-svn: 125453
* Wrap the struct in an anonymous namespace.Argyrios Kyrtzidis2011-02-131-0/+2
| | | | llvm-svn: 125452
* refactor some code out into a helper method.Chris Lattner2011-02-132-46/+56
| | | | llvm-svn: 125451
* Give some convenient idiomatic accessors to Stmt::child_range andJohn McCall2011-02-1322-84/+126
| | | | | | | Stmt::const_child_range, then make a bunch of places use them instead of the individual iterator accessors. llvm-svn: 125450
* teach SCEV that the scale and addition of an inbounds gep don't NSW.Chris Lattner2011-02-133-6/+36
| | | | | | | This fixes a FIXME in scev-aa.ll (allowing a new no-alias result) and generally makes things more precise. llvm-svn: 125449
* Look through array types when deciding whether a field requires non-trivialJohn McCall2011-02-134-5/+49
| | | | | | destruction in the destructor-aliases logic. Fixes PR 9197. llvm-svn: 125447
* Add encodings and mnemonics for FXSAVE64 and FXRSTOR64.Reid Kleckner2011-02-122-0/+12
| | | | | | | | These are just FXSAVE and FXRSTOR with REX.W prefixes. These versions use 64-bit pointer values instead of 32-bit pointer values in the memory map they dump and restore. llvm-svn: 125446
* Implement objective-c++'s block pointer type matching involvingFariborz Jahanian2011-02-127-2/+194
| | | | | | | types which are contravariance in argument types and covariance in return types. // rdar://8979379. llvm-svn: 125445
* Prevent IMPLICIT_DEF/KILL to become a delay filler instruction in SPARC backend.Venkatraman Govindaraju2011-02-122-0/+16
| | | | llvm-svn: 125444
* Teach the IdempotentOperations checker to ignore property setters.Ted Kremenek2011-02-122-4/+19
| | | | llvm-svn: 125443
* SimplifyLibCalls: Add missing legalize check on various printf to puts andDaniel Dunbar2011-02-122-12/+29
| | | | | | putchar transforms, their return values are not compatible. llvm-svn: 125442
* tests: FileCheckizeDaniel Dunbar2011-02-121-3/+5
| | | | llvm-svn: 125441
* Preserve aliases if needed.Rafael Espindola2011-02-121-0/+8
| | | | llvm-svn: 125439
* Add a note about SSE4.1 roundss/roundsd.Benjamin Kramer2011-02-121-0/+11
| | | | llvm-svn: 125438
* A fix for 9165.Nadav Rotem2011-02-122-4/+41
| | | | | | | | The DAGCombiner created illegal BUILD_VECTOR operations. The patch added a check that either illegal operations are allowed or that the created operation is legal. llvm-svn: 125435
* When reading the AST, delay loading of the redeclaration chain to avoid ↵Argyrios Kyrtzidis2011-02-125-12/+181
| | | | | | | | | | | deeply nested calls. Temporarily set the first (canonical) declaration as the previous one, which is the one that matters, and mark the real previous DeclID to be loaded & attached later on. Fixes rdar://8956193. llvm-svn: 125434
* Added the ability to detect which vCont packets (using the "vCont?") packetGreg Clayton2011-02-127-131/+475
| | | | | | | | | are supported by the remote GDB target. We can also now deal with the lack of vCont support and send packets that the remote GDB stub can use. We also error out of the continue if LLDB tries to do something too complex when vCont isn't supported. llvm-svn: 125433
* Update static analyzer build to checker-255.Ted Kremenek2011-02-123-2/+15
| | | | llvm-svn: 125432
* Weaken the ObjCSelfInitChecker to only warn when one calls an 'init' method ↵Ted Kremenek2011-02-123-13/+41
| | | | | | within an 'init' method. This is a temporary stop gap to avoid false positives while we investigate how to make it smarter. llvm-svn: 125427
* AsmMatcher custom operand parser failure enhancements.Jim Grosbach2011-02-124-40/+51
| | | | | | | | | | | Teach the AsmMatcher handling to distinguish between an error custom-parsing an operand and a failure to match. The former should propogate the error upwards, while the latter should continue attempting to parse with alternative matchers. Update the ARM asm parser accordingly. llvm-svn: 125426
* Add entries for Encodings T1 and A1 of "MVN (immediate)" to g_arm_opcodes ↵Johnny Chen2011-02-122-0/+39
| | | | | | | | and g_thumb_opcodes tables. The corresponding EmulateMvnRdImm() method impl is empty for now. llvm-svn: 125425
* Add test case for <rdar://problem/6888289>.Ted Kremenek2011-02-121-0/+38
| | | | llvm-svn: 125424
* Changed comments of some functions to be consistent with existing ones.Johnny Chen2011-02-121-14/+8
| | | | llvm-svn: 125423
* static analyzer: Also invalidate instance variables of a receiver in a ↵Ted Kremenek2011-02-122-0/+46
| | | | | | | | message expression, just as we do with parameters. Fixes <rdar://problem/8725041>. llvm-svn: 125422
* Add helper methods InITBlock() and LastInITBlock() to EmulateInstructionARM ↵Johnny Chen2011-02-122-15/+32
| | | | | | | | | class instead of calling out to m_it_session.InITBlock()/LastInITBlock(), which simplifies the coding a bit. llvm-svn: 125421
* Fix a silly bug I introduced when dropping std::string.Rafael Espindola2011-02-121-0/+2
| | | | llvm-svn: 125420
* Don't emit a dead store for '++' operations unless it occurs with a return ↵Ted Kremenek2011-02-125-12/+26
| | | | | | | | statement. We've never seen any other cases that were real bugs. Fixes <rdar://problem/6962292>. llvm-svn: 125419
* Add EmulateBXRm() ("Branch and Exchange") to both g_arm_opcodes and ↵Johnny Chen2011-02-122-3/+62
| | | | | | g_thumb_opcodes table. llvm-svn: 125418
* Add CMake dependencies so that LLVM_USED_LIBS order doesn't matter.Jeffrey Yasskin2011-02-118-14/+31
| | | | | | | I also sorted the tools/driver dependencies since their order no longer matters. llvm-svn: 125417
* Add a couple of utility functions plus some comments.Johnny Chen2011-02-111-0/+28
| | | | llvm-svn: 125416
* Don't report dead stores on unreachable code paths. Fixes ↵Ted Kremenek2011-02-117-15/+117
| | | | | | <rdar://problem/8405222>. llvm-svn: 125415
* - Add three more instruction contexts to EmulateInstruction:Caroline Tice2011-02-113-12/+234
| | | | | | | | | | | | | | eContextAdjustBaseRegister, eContextRegisterStore and eContextWriteMemoryRandomBits. - Implement a version of WriteBits32UnknownToMemory for writing to memory. - Modify EmulateLDM, EmulateLDMDA, EmulateLDMDB and EmulateLDMIB to use the eContextAdjustBaseRegister context when appropriate. - Add code to emulate the STM/STMIA/STMEA Arm instruction. llvm-svn: 125414
* Add EmulateCmpRnRm() for Encodings T1 & T2 to the g_thumb_opcodes table to ↵Johnny Chen2011-02-112-0/+72
| | | | | | | | emulate CMP (register) operations. llvm-svn: 125413
* attempt to capture recent discussion about overflow and inbounds geps.Chris Lattner2011-02-111-7/+21
| | | | llvm-svn: 125412
* Also fold (A+B) == A -> B == 0 when the add is commuted.Benjamin Kramer2011-02-112-12/+22
| | | | llvm-svn: 125411
* Per discussion with Dan G, inbounds geps *certainly* can haveChris Lattner2011-02-112-5/+16
| | | | | | | | | | | unsigned overflow (e.g. "gep P, -1"), and while they can have signed wrap in theoretical situations, modelling an AddRec as not having signed wrap is going enough for any case we can think of today. In the future if this isn't enough, we can revisit this. Modeling them as having NUW isn't causing any known problems either FWIW. llvm-svn: 125410
* When lowering an inbounds gep, the intermediate adds can haveChris Lattner2011-02-111-6/+3
| | | | | | | | unsigned overflow (e.g. due to a negative array index), but the scales on array size multiplications are known to not sign wrap. llvm-svn: 125409
* Tidy out asm matcher .inc output.Jim Grosbach2011-02-111-2/+2
| | | | llvm-svn: 125408
* Uses llvm::sys::path instead of hand-rolled algorithm in FileManager.Zhanyong Wan2011-02-111-32/+11
| | | | | | Reviewed by dgregor. llvm-svn: 125407
* Adds llvm::sys::path::is_separator() to test whether a char is a path separatorZhanyong Wan2011-02-113-12/+32
| | | | | | on the host OS. Reviewed by dgregor. llvm-svn: 125406
* Rearraned some emulate instruction entries under the appropriate category.Johnny Chen2011-02-111-9/+9
| | | | llvm-svn: 125405
* Implement sdiv & udiv for <4 x i16> and <8 x i8> NEON vector types.Nate Begeman2011-02-112-0/+230
| | | | | | This avoids moving each element to the integer register file and calling __divsi3 etc. on it. llvm-svn: 125402
* Add test case for PR 8646.Ted Kremenek2011-02-111-3/+24
| | | | llvm-svn: 125401
* Instead of self.runCmd(), do a stronger self.expect("process status") which alsoJohnny Chen2011-02-111-1/+3
| | | | | | checks that the process is stopped due to breakpoint at the specified line no. llvm-svn: 125400
OpenPOWER on IntegriCloud