Owen Anderson
4266bb73e8
Turn GVN on by default.
...
llvm-svn: 41787
2007-09-08 22:23:52 +00:00
Dale Johannesen
29e6ac4281
Implement misaligned FP loads and stores.
...
llvm-svn: 41786
2007-09-08 19:29:23 +00:00
Nick Lewycky
a9b13d5cc1
Fix description of the call instruction. There are two types, with one being
...
optional.
llvm-svn: 41785
2007-09-08 13:57:50 +00:00
Chuck Rose III
bf19e0a556
Fix for VisualStudio. It is treating a 2 bit enum as a signed int for comparison purposes, causing failures. Using an extra bit fixes it.
...
llvm-svn: 41784
2007-09-08 04:17:08 +00:00
Chris Lattner
f8a3dadd40
Don't rely on ADL to find this member, patch by Justin Handville
...
llvm-svn: 41783
2007-09-08 01:29:20 +00:00
Evan Cheng
ee8d9a0e81
Smarter Reset(). Instead of deallocating all memory regions and reallocate the
...
first region, just deallocate all but the last region in the list.
llvm-svn: 41782
2007-09-08 00:02:17 +00:00
Evan Cheng
cef2c0efcc
TableGen no longer emit CopyFromReg nodes for implicit results in physical
...
registers. The scheduler is now responsible for emitting them.
llvm-svn: 41781
2007-09-07 23:59:02 +00:00
Ted Kremenek
35fff1e656
-check-dead-stores now no longer prints out the function declarations
...
for each function. This was the behavior prior to the following patch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=41779
llvm-svn: 41780
2007-09-07 23:54:15 +00:00
Ted Kremenek
45c9e96c2b
Refactored driver options that perform analyses/work over CFGs to use
...
"CFGVisitor", which now handles all the boilerplate for iterating over
the function definitions in a translation unit and building the CFGs.
This logic was previously replicated for each driver option that used
CFGs.
The options -dump-cfg, -view-cfg, -check-dead-stores, and
-dump-live-variables now use this refactored code.
llvm-svn: 41779
2007-09-07 23:47:56 +00:00
Bill Wendling
9929bc403d
Add missing index versions of instructions to the map.
...
llvm-svn: 41776
2007-09-07 22:01:02 +00:00
Dan Gohman
a95cbb0007
Avoid storing and reloading zeros and other constants from stack slots
...
by flagging the associated instructions as being trivially rematerializable.
llvm-svn: 41775
2007-09-07 21:32:51 +00:00
Dale Johannesen
9e70086c8f
Apply feedback from previous patch.
...
llvm-svn: 41774
2007-09-07 21:07:57 +00:00
Dale Johannesen
b6d795c1fc
Revert previous change to IR.
...
llvm-svn: 41769
2007-09-07 18:31:50 +00:00
Rafael Espindola
1de0c86717
Add support for having different alignment for objects on call frames.
...
The x86-64 ABI states that objects passed on the stack have
8 byte alignment. Implement that.
llvm-svn: 41768
2007-09-07 14:52:14 +00:00
Hartmut Kaiser
ec7531c9f6
Fixed compilation on Windows.
...
Silenced a couple of warnings.
Added *.vcproj file for new clangAnalysis library.
Renamed Basic to clangBasic projects.
llvm-svn: 41767
2007-09-07 14:34:20 +00:00
Anton Korobeynikov
122bf4be7e
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register
...
liveins and we let frontend solve type issue, not lowering code :)
llvm-svn: 41763
2007-09-07 11:39:35 +00:00
Bill Wendling
5f912b9149
Test for PR1641.
...
llvm-svn: 41762
2007-09-07 08:30:09 +00:00
Chris Lattner
85a51e0060
Don't zap back to back volatile load/stores
...
llvm-svn: 41759
2007-09-07 05:33:03 +00:00
Owen Anderson
e2f23a3abf
Add lengthof and endof templates that hide a lot of sizeof computations.
...
Patch by Sterling Stein!
llvm-svn: 41758
2007-09-07 04:06:50 +00:00
Ted Kremenek
3ce57c6baf
Added more checking in "dead stores" for values that are initialized
...
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
2007-09-06 23:39:53 +00:00
Ted Kremenek
10e7870746
Minor bug fixes to corner cases where LiveVariables would crash on some CFGs
...
that contained no declarations, or when a variable is declared but never used.
llvm-svn: 41756
2007-09-06 23:25:10 +00:00
Ted Kremenek
1bb9f2596f
Forgot to check in the actual "dead stores" checker in the last commit!
...
llvm-svn: 41755
2007-09-06 23:01:46 +00:00
Ted Kremenek
6dc7b11d32
Added "Dead Stores", a flow-sensitive checker that checks for stores
...
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
2007-09-06 23:00:42 +00:00
Ted Kremenek
3f8ed2653c
LiveVariables:
...
- 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
2007-09-06 21:26:58 +00:00
Steve Naroff
09bf815f89
The goal of this commit is to get just enough Sema support to recognize 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
2007-09-06 21:24:23 +00:00
David Greene
517d5d8ebe
Constify to catch bugs.
...
llvm-svn: 41751
2007-09-06 19:46:46 +00:00
Dale Johannesen
bed9dc423c
Next round of APFloat changes.
...
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
2007-09-06 18:13:44 +00:00
Anton Korobeynikov
a07765b8f4
Proper handle case, when aliasee is external weak symbol referenced only by alias itself.
...
Also, fix a case, when target doesn't have weak symbols supported.
llvm-svn: 41746
2007-09-06 17:21:48 +00:00
Ted Kremenek
73c18e0362
Added LabelLoc to GotoStmt to record the source location of the label token
...
in the actual GotoStmt.
Fixed bug where GotoStmt::getSourceRange incorrectly used the target LabelStmt
to compute its extent.
llvm-svn: 41745
2007-09-06 17:11:52 +00:00
David Greene
a6d5d2a6a0
Add instruction dump output. This helps find bugs.
...
llvm-svn: 41744
2007-09-06 16:36:39 +00:00
David Greene
65d2a697dc
Pluggable coalescers inplementation.
...
llvm-svn: 41743
2007-09-06 16:18:45 +00:00
Ted Kremenek
e80505643d
Added libClangAnalysis
...
llvm-svn: 41742
2007-09-06 15:58:13 +00:00
Nick Lewycky
0c5c47944a
Use isTrueWhenEqual. Thanks Chris!
...
llvm-svn: 41741
2007-09-06 02:40:25 +00:00
Nick Lewycky
b0b066eaaa
When the two operands of an icmp are equal, there are five possible predicates
...
that would make the icmp true. Fixes PR1637.
llvm-svn: 41740
2007-09-06 01:10:22 +00:00
Evan Cheng
d059eed1c1
Fix a memory leak.
...
llvm-svn: 41739
2007-09-06 01:07:24 +00:00
Ted Kremenek
b56a990955
Added an early implementation of Live-Variables analysis built on
...
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
2007-09-06 00:17:54 +00:00
Chris Lattner
542a440062
remove the FATAL classifier.
...
llvm-svn: 41736
2007-09-06 00:16:35 +00:00
Evan Cheng
189df733ed
Fix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:
...
leal (,%rcx,8), %rcx
It should be
leal (,%rcx,8), %ecx
llvm-svn: 41735
2007-09-06 00:14:41 +00:00
Chris Lattner
aa4b29c52b
remove sorry.
...
llvm-svn: 41734
2007-09-06 00:14:09 +00:00
Bill Wendling
b65ef38590
LVXL and STVXL are also a load and store resp.
...
llvm-svn: 41733
2007-09-05 23:47:12 +00:00
Steve Naroff
ca85d1dc07
Start implementing Actions interface for ObjC classes, instance variables, and methods.
...
Lot's of small changes to the parser.
llvm-svn: 41732
2007-09-05 23:30:30 +00:00
Fariborz Jahanian
bd25f7d4a5
Patch for parsing objective-c style method calls.
...
llvm-svn: 41731
2007-09-05 23:08:20 +00:00
Evan Cheng
26038c3918
Accidentially left this out.
...
llvm-svn: 41730
2007-09-05 21:58:18 +00:00
Evan Cheng
db53aef53e
Use pool allocator for all the VNInfo's to improve memory access locality. 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
2007-09-05 21:46:51 +00:00
Evan Cheng
3dba41bf37
Added Reset() to free all allocated memory regions and reset state to be the same as right after ctor.
...
llvm-svn: 41728
2007-09-05 21:41:34 +00:00
Evan Cheng
19ce37a1cd
Missing break. Patch by Wojciech Matyjewicz.
...
llvm-svn: 41727
2007-09-05 21:36:14 +00:00
Dale Johannesen
728687c423
Fix mod so it actually works. Fix conversions to
...
native types to handle denormals correctly.
llvm-svn: 41726
2007-09-05 20:39:49 +00:00
Chuck Rose III
2320323647
Forgot to obey 80 column rule. Fixing that.
...
llvm-svn: 41725
2007-09-05 20:36:41 +00:00
Ted Kremenek
813dd67a34
Moved tracking of CFG block IDs into the CFG class.
...
Added CFG::getNumBlockIDs() to query the number of distinct block ids created.
llvm-svn: 41724
2007-09-05 20:02:05 +00:00
Fariborz Jahanian
7db004df78
1. Fix parsing of method prototype involving c-style argument declarations.
...
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
2007-09-05 19:52:07 +00:00