| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The x86-64 ABI states that objects passed on the stack have
8 byte alignment. Implement that.
llvm-svn: 41768
|
| |
|
|
|
|
|
|
| |
Silenced a couple of warnings.
Added *.vcproj file for new clangAnalysis library.
Renamed Basic to clangBasic projects.
llvm-svn: 41767
|
| |
|
|
|
|
|
|
| |
needed, because they just "mark" register
liveins and we let frontend solve type issue, not lowering code :)
llvm-svn: 41763
|
| |
|
|
| |
llvm-svn: 41762
|
| |
|
|
| |
llvm-svn: 41759
|
| |
|
|
|
|
| |
Patch by Sterling Stein!
llvm-svn: 41758
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
that contained no declarations, or when a variable is declared but never used.
llvm-svn: 41756
|
| |
|
|
| |
llvm-svn: 41755
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41751
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
alias itself.
Also, fix a case, when target doesn't have weak symbols supported.
llvm-svn: 41746
|
| |
|
|
|
|
|
|
|
| |
in the actual GotoStmt.
Fixed bug where GotoStmt::getSourceRange incorrectly used the target LabelStmt
to compute its extent.
llvm-svn: 41745
|
| |
|
|
| |
llvm-svn: 41744
|
| |
|
|
| |
llvm-svn: 41743
|
| |
|
|
| |
llvm-svn: 41742
|
| |
|
|
| |
llvm-svn: 41741
|
| |
|
|
|
|
| |
that would make the icmp true. Fixes PR1637.
llvm-svn: 41740
|
| |
|
|
| |
llvm-svn: 41739
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41736
|
| |
|
|
|
|
|
|
| |
leal (,%rcx,8), %rcx
It should be
leal (,%rcx,8), %ecx
llvm-svn: 41735
|
| |
|
|
| |
llvm-svn: 41734
|
| |
|
|
| |
llvm-svn: 41733
|
| |
|
|
|
|
|
|
| |
and methods.
Lot's of small changes to the parser.
llvm-svn: 41732
|
| |
|
|
| |
llvm-svn: 41731
|
| |
|
|
| |
llvm-svn: 41730
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
same as right after ctor.
llvm-svn: 41728
|
| |
|
|
| |
llvm-svn: 41727
|
| |
|
|
|
|
| |
native types to handle denormals correctly.
llvm-svn: 41726
|
| |
|
|
| |
llvm-svn: 41725
|
| |
|
|
|
|
| |
Added CFG::getNumBlockIDs() to query the number of distinct block ids created.
llvm-svn: 41724
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
representable to use hex format.
llvm-svn: 41722
|
| |
|
|
|
|
| |
Studio 2k5 was getting confused and was unable to compile it. Suspected compiler error.
llvm-svn: 41721
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41719
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 41717
|
| |
|
|
| |
llvm-svn: 41716
|
| |
|
|
|
|
|
|
|
| |
- ArrayType::getBaseType(), and
- ConstantArrayType::getMaximumElements().
Wanted to do this cleanup before adding structure support, which will add more complexity.
llvm-svn: 41715
|
| |
|
|
| |
llvm-svn: 41714
|
| |
|
|
| |
llvm-svn: 41713
|
| |
|
|
| |
llvm-svn: 41712
|
| |
|
|
| |
llvm-svn: 41711
|
| |
|
|
|
|
| |
32-bit rotate target instruction for a 64-bit node when 64-bit pattern is missing.
llvm-svn: 41710
|