summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add support for having different alignment for objects on call frames.Rafael Espindola2007-09-075-9/+57
| | | | | | | The x86-64 ABI states that objects passed on the stack have 8 byte alignment. Implement that. llvm-svn: 41768
* Fixed compilation on Windows. Hartmut Kaiser2007-09-077-116/+313
| | | | | | | | Silenced a couple of warnings. Added *.vcproj file for new clangAnalysis library. Renamed Basic to clangBasic projects. llvm-svn: 41767
* Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is ↵Anton Korobeynikov2007-09-078-110/+125
| | | | | | | | needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) llvm-svn: 41763
* Test for PR1641.Bill Wendling2007-09-071-0/+14
| | | | llvm-svn: 41762
* Don't zap back to back volatile load/storesChris Lattner2007-09-072-1/+15
| | | | llvm-svn: 41759
* Add lengthof and endof templates that hide a lot of sizeof computations.Owen Anderson2007-09-0716-47/+68
| | | | | | Patch by Sterling Stein! llvm-svn: 41758
* Added more checking in "dead stores" for values that are initializedTed Kremenek2007-09-062-1/+17
| | | | | | | | | | but never used. Fix a bug in LiveVariables where uses on the LHS of self-assign operators (e.g +=, *=, etc) would not be properly recorded in the liveness state of the variable. llvm-svn: 41757
* Minor bug fixes to corner cases where LiveVariables would crash on some CFGsTed Kremenek2007-09-061-2/+11
| | | | | | that contained no declarations, or when a variable is declared but never used. llvm-svn: 41756
* Forgot to check in the actual "dead stores" checker in the last commit!Ted Kremenek2007-09-062-0/+99
| | | | llvm-svn: 41755
* Added "Dead Stores", a flow-sensitive checker that checks for storesTed Kremenek2007-09-068-8/+80
| | | | | | | | | | to variables that are no longer live. This analysis is built on top of CFGs and the LiveVariables analysis. changes to driver: added driver option "-check-dead-stores" to run the analysis llvm-svn: 41754
* LiveVariables:Ted Kremenek2007-09-064-57/+246
| | | | | | | | | | | | | | - Finished 99% of analysis logic. Probably a few bugs. - Added querying functions to query liveness. - Added better pretty printing of liveness. - Added better bookkeeping of per-variable liveness information. - Added LiveVariablesAuditor interface, which allows "lazy" querying of intra-basic block liveness information. Driver: - Minor cleanups involved in dumping liveness information. llvm-svn: 41753
* The goal of this commit is to get just enough Sema support to recognize ↵Steve Naroff2007-09-0615-82/+230
| | | | | | | | | | | Objective-C classes as types. That said, the AST nodes ObjcInterfaceDecl, ObjcInterfaceType, and ObjcClassDecl are *very* preliminary. The good news is we no longer need -parse-noop (aka MinimalActions) to parse cocoa.m. llvm-svn: 41752
* Constify to catch bugs.David Greene2007-09-062-4/+5
| | | | llvm-svn: 41751
* Next round of APFloat changes.Dale Johannesen2007-09-0632-437/+540
| | | | | | | | | | | | | | Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) llvm-svn: 41747
* Proper handle case, when aliasee is external weak symbol referenced only by ↵Anton Korobeynikov2007-09-062-6/+17
| | | | | | | | alias itself. Also, fix a case, when target doesn't have weak symbols supported. llvm-svn: 41746
* Added LabelLoc to GotoStmt to record the source location of the label tokenTed Kremenek2007-09-062-4/+5
| | | | | | | | | in the actual GotoStmt. Fixed bug where GotoStmt::getSourceRange incorrectly used the target LabelStmt to compute its extent. llvm-svn: 41745
* Add instruction dump output. This helps find bugs.David Greene2007-09-061-0/+6
| | | | llvm-svn: 41744
* Pluggable coalescers inplementation.David Greene2007-09-067-2/+238
| | | | llvm-svn: 41743
* Added libClangAnalysisTed Kremenek2007-09-061-1/+1
| | | | llvm-svn: 41742
* Use isTrueWhenEqual. Thanks Chris!Nick Lewycky2007-09-061-8/+13
| | | | llvm-svn: 41741
* When the two operands of an icmp are equal, there are five possible predicatesNick Lewycky2007-09-062-1/+13
| | | | | | that would make the icmp true. Fixes PR1637. llvm-svn: 41740
* Fix a memory leak.Evan Cheng2007-09-062-1/+4
| | | | llvm-svn: 41739
* Added an early implementation of Live-Variables analysis built onTed Kremenek2007-09-068-3/+474
| | | | | | | | | | source-level CFGs. This code may change significantly in the near future as we explore different means to implement dataflow analyses. Added a driver option, -dump-live-variables, to view the output of live variable analysis. This output is very ALPHA; it will be improved shortly. llvm-svn: 41737
* remove the FATAL classifier.Chris Lattner2007-09-062-3/+0
| | | | llvm-svn: 41736
* Fix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:Evan Cheng2007-09-062-25/+64
| | | | | | | | leal (,%rcx,8), %rcx It should be leal (,%rcx,8), %ecx llvm-svn: 41735
* remove sorry.Chris Lattner2007-09-062-2/+1
| | | | llvm-svn: 41734
* LVXL and STVXL are also a load and store resp.Bill Wendling2007-09-051-0/+2
| | | | llvm-svn: 41733
* Start implementing Actions interface for ObjC classes, instance variables, ↵Steve Naroff2007-09-056-46/+137
| | | | | | | | and methods. Lot's of small changes to the parser. llvm-svn: 41732
* Patch for parsing objective-c style method calls.Fariborz Jahanian2007-09-052-1/+55
| | | | llvm-svn: 41731
* Accidentially left this out.Evan Cheng2007-09-051-1/+2
| | | | llvm-svn: 41730
* Use pool allocator for all the VNInfo's to improve memory access locality. ↵Evan Cheng2007-09-055-102/+92
| | | | | | This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks. llvm-svn: 41729
* Added Reset() to free all allocated memory regions and reset state to be the ↵Evan Cheng2007-09-052-0/+8
| | | | | | same as right after ctor. llvm-svn: 41728
* Missing break. Patch by Wojciech Matyjewicz.Evan Cheng2007-09-051-0/+1
| | | | llvm-svn: 41727
* Fix mod so it actually works. Fix conversions toDale Johannesen2007-09-051-9/+33
| | | | | | native types to handle denormals correctly. llvm-svn: 41726
* Forgot to obey 80 column rule. Fixing that.Chuck Rose III2007-09-051-1/+2
| | | | llvm-svn: 41725
* Moved tracking of CFG block IDs into the CFG class.Ted Kremenek2007-09-052-8/+9
| | | | | | Added CFG::getNumBlockIDs() to query the number of distinct block ids created. llvm-svn: 41724
* 1. Fix parsing of method prototype involving c-style argument declarations.Fariborz Jahanian2007-09-054-9/+90
| | | | | | | | 2. Fixes all allowable key-words used as selectors. 3. Template to do the messaging parse. 4. A test case for all allowable selector names. llvm-svn: 41723
* Change all floating constants that are not exactlyDale Johannesen2007-09-0521-32/+32
| | | | | | representable to use hex format. llvm-svn: 41722
* Added default parameters to GetElementPtrInstr constructor call. Visual ↵Chuck Rose III2007-09-051-1/+1
| | | | | | Studio 2k5 was getting confused and was unable to compile it. Suspected compiler error. llvm-svn: 41721
* Due to label merging, the last label for an invokeDuncan Sands2007-09-051-3/+2
| | | | | | | | may be the same as the first label for the following invoke. Remove a micro-optimization which was wrong in this case. llvm-svn: 41720
* Testcases for PR1628.Duncan Sands2007-09-053-0/+11
| | | | llvm-svn: 41719
* Fix PR1628. When exception handling is turned on,Duncan Sands2007-09-053-87/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | labels are generated bracketing each call (not just invokes). This is used to generate entries in the exception table required by the C++ personality. However it gets in the way of tail-merging. This patch solves the problem by no longer placing labels around ordinary calls. Instead we generate entries in the exception table that cover every instruction in the function that wasn't covered by an invoke range (the range given by the labels around the invoke). As an optimization, such entries are only generated for parts of the function that contain a call, since for the moment those are the only instructions that can throw an exception [1]. As a happy consequence, we now get a smaller exception table, since the same region can cover many calls. While there, I also implemented folding of invoke ranges - successive ranges are merged when safe to do so. Finally, if a selector contains only a cleanup, there's a special shorthand for it - place a 0 in the call-site entry. I implemented this while there. As a result, the exception table output (excluding filters) is now optimal - it cannot be made smaller [2]. The problem with throw filters is that folding them optimally is hard, and the benefit of folding them is minimal. [1] I tested that having trapping instructions (eg divide by zero) in such a region doesn't cause trouble. [2] It could be made smaller with the help of higher layers, eg by having branch folding reorder basic blocks ending in invokes with the same landing pad so they follow each other. I don't know if this is worth doing. llvm-svn: 41718
* Add the 64-bit versions of the DS* Altivec instructions.Bill Wendling2007-09-052-14/+60
| | | | llvm-svn: 41717
* Fixed a typo pointed out by Anders Calrsson.Fariborz Jahanian2007-09-041-1/+1
| | | | llvm-svn: 41716
* Simplified initializer semantic analysis by adding the following 2 methods:Steve Naroff2007-09-043-50/+32
| | | | | | | | | - ArrayType::getBaseType(), and - ConstantArrayType::getMaximumElements(). Wanted to do this cleanup before adding structure support, which will add more complexity. llvm-svn: 41715
* Enable loop index split pass.Devang Patel2007-09-041-0/+1
| | | | llvm-svn: 41714
* Insert cloned loop basic blocks before original loop header.Devang Patel2007-09-041-1/+3
| | | | llvm-svn: 41713
* Fix for PR1632. EHSELECTION always produces a i32 value.Evan Cheng2007-09-042-1/+39
| | | | llvm-svn: 41712
* Fix for PR1613: added 64-bit rotate left PPC instructions and patterns.Evan Cheng2007-09-042-0/+30
| | | | llvm-svn: 41711
* Always check the type of node. This prevents situations such as selecting ↵Evan Cheng2007-09-041-36/+30
| | | | | | 32-bit rotate target instruction for a 64-bit node when 64-bit pattern is missing. llvm-svn: 41710
OpenPOWER on IntegriCloud