summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Reject forbidden storage class specifiers in OpenCL. Patch by George Russell!Peter Collingbourne2011-02-117-12/+43
| | | | llvm-svn: 125399
* SimplifySelectOps can only handle selects with a scalar condition. Add a checkNadav Rotem2011-02-111-0/+3
| | | | | | that the condition is not a vector. llvm-svn: 125398
* Remove RegionStoreManager::evalBinOp(), which is now handled by the SValBuilder.Ted Kremenek2011-02-111-119/+0
| | | | llvm-svn: 125396
* Rename 'InvalidateRegions()' to 'invalidateRegions()'.Ted Kremenek2011-02-1111-40/+38
| | | | llvm-svn: 125395
* Rename the operation that loads a preprocessed entity from a given offset to ↵Douglas Gregor2011-02-114-5/+7
| | | | | | indicate that we're loading from an offset, not an index, lest one be confused. No functionality change. llvm-svn: 125394
* Fix 9173.Nadav Rotem2011-02-113-0/+67
| | | | | | | Add more folding patterns to constant expressions of vector selects and vector bitcasts. llvm-svn: 125393
* Handle the case of interworking branch for EmulateLDMDA.Johnny Chen2011-02-111-1/+2
| | | | llvm-svn: 125392
* Fix #9190Nadav Rotem2011-02-111-1/+1
| | | | | | | | | | | The bug happens when the DAGCombiner attempts to optimize one of the patterns of the SUB opcode. It tries to create a zero of type v2i64. This type is legal on 32bit machines, but the initializer of this vector (i64) is target dependent. Currently, the initializer attempts to create an i64 zero constant, which fails. Added a flag to tell the DAGCombiner to create a legal zero, if we require that the pass would generate legal types. llvm-svn: 125391
* Add Thumb2 LDR (literal) instruction into the g_thumb_opcodes table.Johnny Chen2011-02-112-11/+52
| | | | | | | Change the method name from *LDRRdPCRelative to *LDRRtPCRelative to be compliant with the ARM Arch Manual which uses Rt for the destination register. llvm-svn: 125390
* Test commit.Nadav Rotem2011-02-111-1/+1
| | | | llvm-svn: 125389
* More whitespace cleanup...Jim Grosbach2011-02-112-41/+41
| | | | llvm-svn: 125388
* Fix a block sema bug where result type of initializerFariborz Jahanian2011-02-114-5/+23
| | | | | | | | | is unqualified but its initialized is qualified. This is for c only and fixes the imm. problem. c++ is more involved and is wip. // rdar://8979379 llvm-svn: 125386
* Remove trailing whitespace.Jim Grosbach2011-02-111-6/+6
| | | | llvm-svn: 125385
* Improves Clang's virtual file handling.Zhanyong Wan2011-02-115-109/+421
| | | | | | | | | | | | | | | | | | | | | | | This patch contains: - making some of the existing comments more accurate in the presence of virtual files/directories. - renaming some private data members of FileManager to match their roles better. - creating 'DirectorEntry's for the parent directories of virtual files, such that we can tell whether two virtual files are from the same directory. This is useful for injecting virtual files whose directories don't exist in the real file system. - minor clean-ups and adding comments for class FileManager::UniqueDirContainer and FileManager::UniqueFileContainer. - adding statistics on virtual files to FileManager::PrintStats(). - adding unit tests to verify the existing and new behavior of FileManager. llvm-svn: 125384
* Poison the relational operators ==, !=, <, <=, >=, > on llvm::OptionalDouglas Gregor2011-02-111-0/+54
| | | | | | | objects, since they'll end up using the implicit conversion to "bool" and causing some very "fun" surprises. llvm-svn: 125380
* Fix build.Johnny Chen2011-02-111-0/+1
| | | | llvm-svn: 125379
* Don't compare llvm::Optional<> objects directly; compare theirDouglas Gregor2011-02-111-8/+14
| | | | | | contents when it's safe. I just *love* C++ some days. llvm-svn: 125378
* Add new instruction context, eContextWriteRegisterRandomBits.Caroline Tice2011-02-113-8/+174
| | | | | | | | | | | Add new utility function, WriteBits32Unknown Modify the LDM* instruction emulation functions to call WriteBits32Unknown. Add missing overview comments to the LDM* instruction emulation functions. Add code to emulate LDMDA Arm instruction. llvm-svn: 125377
* Make LoopUnswitch preserve ScalarEvolution by just forgetting everything aboutCameron Zwarich2011-02-111-0/+5
| | | | | | | a loop when unswitching it. It only does this in the complex case, because everything should be fine already in the simple case. llvm-svn: 125369
* LoopInstSimplify preserves ScalarEvolution.Cameron Zwarich2011-02-111-0/+1
| | | | llvm-svn: 125368
* fix dumping of METADATA_ATTACHMENT2 names, patch by Peter Housel!Chris Lattner2011-02-111-1/+1
| | | | llvm-svn: 125367
* make ConstantExpr::replaceUsesOfWithOnConstant preserve the inboundsChris Lattner2011-02-111-1/+2
| | | | | | flag. Noticed by Jin Gu Kang! llvm-svn: 125366
* make the constantexpr interfaces for inbounds GEPs follow the same styleChris Lattner2011-02-112-77/+23
| | | | | | as other constantexpr flags, reducing redundancy. llvm-svn: 125365
* InitHeaderSearch.cpp: [PR8298] Don't touch drive G: on Windows hosts!NAKAMURA Takumi2011-02-111-6/+0
| | | | llvm-svn: 125364
* Remove std::string version of getNameWithPrefix.Rafael Espindola2011-02-114-21/+10
| | | | llvm-svn: 125363
* Allow the 'Eng' entry in GRStateManager to be a (possibly null) pointer ↵Ted Kremenek2011-02-112-12/+27
| | | | | | instead of a reference. llvm-svn: 125362
* Disable this test for now...Daniel Dunbar2011-02-111-0/+3
| | | | llvm-svn: 125361
* For consistency, use llvm::raw_ostream in the rest of the mangle api.Rafael Espindola2011-02-1110-82/+89
| | | | llvm-svn: 125360
* Fix buggy fcopysign lowering.Evan Cheng2011-02-112-18/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This define float @foo(float %x, float %y) nounwind readnone { entry: %0 = tail call float @copysignf(float %x, float %y) nounwind readnone ret float %0 } Was compiled to: vmov s0, r1 bic r0, r0, #-2147483648 vmov s1, r0 vcmpe.f32 s0, #0 vmrs apsr_nzcv, fpscr it lt vneglt.f32 s1, s1 vmov r0, s1 bx lr This fails to copy the sign of -0.0f because it's lost during the float to int conversion. Also, it's sub-optimal when the inputs are in GPR registers. Now it uses integer and + or operations when it's profitable. And it's correct! lsrs r1, r1, #31 bfi r0, r1, #31, #1 bx lr rdar://8984306 llvm-svn: 125357
* Convert RecordLayout::DataSize to CharUnits from bits, eliminating twoKen Dyck2011-02-114-15/+16
| | | | | | | unnecessary calls to RoundUpToAlignment. No changes to functionality intended. llvm-svn: 125356
* Add an entry for CMP (immediate) (Encoding T1) to the g_thumb_opcodes table.Johnny Chen2011-02-112-4/+58
| | | | llvm-svn: 125333
* Add a helper function, ASTContext::toBits(), that converts sizes inKen Dyck2011-02-116-27/+22
| | | | | | | CharUnits to sizes in bits, and use it to tidy up the places where the conversion was done explicitly. llvm-svn: 125332
* Use raw_ostream instead of raw_svector_ostream.Rafael Espindola2011-02-114-33/+33
| | | | llvm-svn: 125330
* Add a helper method AddWithCarry() to the EmulateInstructionARM class.Johnny Chen2011-02-112-0/+31
| | | | llvm-svn: 125329
* build/compiler-rt: Fake Clang into using the right assembler to build the ARMDaniel Dunbar2011-02-111-1/+11
| | | | | | bits for the runtime libraries. llvm-svn: 125328
* Remove trailing whitespace.Jim Grosbach2011-02-113-18/+18
| | | | llvm-svn: 125327
* Eliminate a major performance problem with chained PCH, where we wereDouglas Gregor2011-02-111-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | causing the deserialization of a large number of declarations when writing the visible-updates record for the translation unit in C. This takes us from: *** AST File Statistics: 2 stat cache hits 6 stat cache misses 1/64463 source location entries read (0.001551%) 15606/16956 types read (92.038216%) 59266/89334 declarations read (66.342041%) 38952/61393 identifiers read (63.446976%) 0/7778 selectors read (0.000000%) 24192/34644 statements read (69.830276%) 388/8809 macros read (4.404586%) 2095/5189 lexical declcontexts read (40.373867%) 0/4587 visible declcontexts read (0.000000%) 0/7716 method pool entries read (0.000000%) 0 method pool misses to *** AST File Statistics: 2 stat cache hits 6 stat cache misses 1/64463 source location entries read (0.001551%) 26/16956 types read (0.153338%) 18/89334 declarations read (0.020149%) 145/61393 identifiers read (0.236183%) 0/7778 selectors read (0.000000%) 21/34644 statements read (0.060617%) 0/8809 macros read (0.000000%) 0/5189 lexical declcontexts read (0.000000%) 0/4587 visible declcontexts read (0.000000%) 0/7716 method pool entries read (0.000000%) 0 method pool misses when generating a chained PCH for a header that #includes Cocoa.h (from a PCH file) and adds one simple function declaration. The generated PCH file is now only 9580 bytes (down from > 2MB). llvm-svn: 125326
* Add a test for the LSR issue exposed by r125254.Cameron Zwarich2011-02-111-0/+32
| | | | llvm-svn: 125325
* Implement AST/PCH chaining support for macro definitions. Previously,Douglas Gregor2011-02-113-3/+22
| | | | | | | | | | | | | | we would deserialize all of the macro definitions we knew about while serializing the macro definitions at the end of the AST/PCH file. Even though we skipped most of them (since they were unchanged), it's still a performance problem. Now, we do the standard AST/PCH chaining trick: watch what identifiers are deserialized as macro names, and consider only those identifiers (along with macro definitions that have been deserialized/written in the source) when serializing the preprocessor state. llvm-svn: 125324
* Fix another typo.Johnny Chen2011-02-111-1/+1
| | | | llvm-svn: 125323
* Fix a typo.Johnny Chen2011-02-111-1/+1
| | | | llvm-svn: 125322
* Use raw_svector_ostream in more places in the mangler.Rafael Espindola2011-02-105-72/+88
| | | | llvm-svn: 125321
OpenPOWER on IntegriCloud