Ted Kremenek
fef1f30ea2
Use "VisitLValue" when processing the base for "x.f" field accesses, and "Visit" when processing the base for "x->f" field accesses.
...
llvm-svn: 57754
2008-10-18 03:28:48 +00:00
Mon P Wang
8f477106a4
Make llvm memory barrier available as an intrinsic
...
llvm-svn: 57751
2008-10-18 02:49:28 +00:00
Mon P Wang
446218462b
Make llvm memory barrier available as an intrinsic
...
llvm-svn: 57750
2008-10-18 02:48:13 +00:00
Mon P Wang
179a72f000
Added vec_set intrinsics
...
llvm-svn: 57749
2008-10-18 02:43:25 +00:00
Dan Gohman
2fe6bee5b6
Teach DAGCombine to fold constant offsets into GlobalAddress nodes,
...
and add a TargetLowering hook for it to use to determine when this
is legal (i.e. not in PIC mode, etc.)
This allows instruction selection to emit folded constant offsets
in more cases, such as the included testcase, eliminating the need
for explicit arithmetic instructions.
This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
that attempted to achieve the same effect, but wasn't as effective.
Also, fix handling of offsets in GlobalAddressSDNodes in several
places, including changing GlobalAddressSDNode's offset from
int to int64_t.
The Mips, Alpha, Sparc, and CellSPU targets appear to be
unaware of GlobalAddress offsets currently, so set the hook to
false on those targets.
llvm-svn: 57748
2008-10-18 02:06:02 +00:00
Dan Gohman
6de2556205
Revert r57699. It's causing regressions in
...
test/CodeGen/X86/2008-09-17-inline-asm-1.ll
and a few others, and it breaks the llvm-gcc build.
llvm-svn: 57747
2008-10-18 01:03:45 +00:00
Argyrios Kyrtzidis
3a0558af9a
Just do a diagIfAmbiguous -> warnIfAmbiguous rename.
...
No functionality change.
llvm-svn: 57746
2008-10-17 23:23:35 +00:00
Daniel Dunbar
1ea1aa2cc1
Emit more descriptive unsupported error message on dot-syntax use of super.
...
llvm-svn: 57745
2008-10-17 23:05:02 +00:00
Daniel Dunbar
6ccea71c64
Add some uses of PredefinedExpr to language coverage includes.
...
llvm-svn: 57744
2008-10-17 23:04:32 +00:00
Daniel Dunbar
cf56c2b7bd
Add FIXME about potential problem in how property ref lvalues are handled.
...
llvm-svn: 57743
2008-10-17 23:02:24 +00:00
Ted Kremenek
0b09ea54ba
This test now passes again.
...
llvm-svn: 57742
2008-10-17 22:53:09 +00:00
Ted Kremenek
db5ae0aa1c
Hack: have BasicStore::getLValueElement return the "Base" lvalue. This restores null dereference checking with array accesses.
...
BasicStore::RemoveDeadBindings: handle regions besides VarRegions (we now have FieldRegions).
llvm-svn: 57741
2008-10-17 22:52:40 +00:00
Ted Kremenek
213873232d
When conjuring symbols to recover path-sensitivity, don't conjure symbols that represent an entire struct. We need to implement struct temporaries as an actual "region", and then bind symbols to the FieldRegion of those temporaries.
...
llvm-svn: 57739
2008-10-17 22:23:12 +00:00
Daniel Dunbar
b35174727f
Lift CodeGenFunction::EmitPredefinedFunctioName out of EmitPredefinedLValue.
...
- Shouldn't assume predefined expr is a function printing one.
- Uses CGM functionality to cache function names per module.
llvm-svn: 57737
2008-10-17 21:58:32 +00:00
Daniel Dunbar
dfcf599dfa
Add option argument to GetAddrOfConstantString to use for name of
...
(first) global holding the string.
- No functionality change.
llvm-svn: 57736
2008-10-17 21:56:50 +00:00
Dan Gohman
83876cd9b0
Use the opcode predicates, instead of duplicating the code.
...
llvm-svn: 57735
2008-10-17 21:42:45 +00:00
Dan Gohman
209fc26462
This is now partly done.
...
llvm-svn: 57734
2008-10-17 21:39:27 +00:00
Dan Gohman
b1d8d6ecff
This is done.
...
llvm-svn: 57733
2008-10-17 21:38:40 +00:00
Chris Lattner
f0a5f84c42
fix rdar://6288301: custom warnings don't respect -Werror.
...
llvm-svn: 57731
2008-10-17 21:24:47 +00:00
Ted Kremenek
1416a521b5
Enhance "Assumption" logic in BasicConstraintManager when reasoning about regions and symbolic regions. When assuming whether or not a location is non-null, walk up the region hierarchy until we hit a symbolic region (and test it for null). This may not be the end all solution, as the notion of what a "symbolic region" is really belongs in the specific subclass of StoreManager.
...
llvm-svn: 57730
2008-10-17 21:22:20 +00:00
Dan Gohman
d01ddb51ee
Factor out the code for mapping LLVM IR condition opcodes to
...
ISD condition opcodes into helper functions.
llvm-svn: 57726
2008-10-17 21:16:08 +00:00
Ted Kremenek
fe15bedff4
Add pretty-printing support for FieldRegions.
...
llvm-svn: 57724
2008-10-17 21:05:44 +00:00
Evan Cheng
0fcc89b596
Add implicit defs of XMM8 to XMM15 on 32-bit call instructions. While this is not technically true, it tells tblgen that these instructions "clobber" the entire XMM register file.
...
llvm-svn: 57723
2008-10-17 21:02:22 +00:00
Evan Cheng
010e9b0760
Add RCBarriers to TargetInstrDesc. It's a list of register classes the given instruction can "clobber". For example, on x86 the call instruction can modify all of the XMM and fp stack registers.
...
TableGen has been taught to generate the lists from instruction definitions.
llvm-svn: 57722
2008-10-17 21:00:09 +00:00
Daniel Dunbar
1e75408d89
Emit error unsupported when asm string conversion fails instead of
...
assert.
llvm-svn: 57721
2008-10-17 20:58:01 +00:00
Evan Cheng
94169f1021
Fix PR2898. Spiller delete a store for reuse before it knows for sure the reuse happened.
...
Patch by Lang Hames!
llvm-svn: 57720
2008-10-17 20:56:41 +00:00
Ted Kremenek
a196618ad0
Fixed an elusive caching bug in ExplodedGraph construction when a PostStmtKind was used instead of a PostStoreKind.
...
llvm-svn: 57719
2008-10-17 20:49:23 +00:00
Ted Kremenek
055891cbf3
Test now passes.
...
llvm-svn: 57718
2008-10-17 20:29:05 +00:00
Ted Kremenek
8b103c65c6
- constify some uses of MemRegion* (MemRegion should be immutable).
...
- Added new region "SymbolicRegion", which maps symbol values to the region domain.
- Enhanced BasicStore::getFieldLValue() to return a FieldRegion (using SymbolicRegion)
- Added some utility methods to GRState for fetch svals from the store.
- Fixed regression in CheckNSError (we weren't getting the value bound to the parameter)
llvm-svn: 57717
2008-10-17 20:28:54 +00:00
Daniel Dunbar
fc1066db81
Remove unneeded EncodingRecordTypes argument to getObjCEncodingForType.
...
llvm-svn: 57716
2008-10-17 20:21:44 +00:00
Chris Lattner
aadf7414b2
add support for 128 bit aggregates.
...
llvm-svn: 57715
2008-10-17 19:59:51 +00:00
Bill Wendling
fe9e2c587d
The Dwarf writer was comparing mangled and unmangled names for C++ code when we
...
have an unreachable block in a function. This was triggering the assert. This is
a horrid hack to cover this up.
Oh! for a good debug info architecture!
llvm-svn: 57714
2008-10-17 18:48:57 +00:00
Mon P Wang
85f48ade9c
Added MemIntrinsicNode which is useful to represent target intrinsics that
...
touches memory and need an associated MemOperand
llvm-svn: 57712
2008-10-17 18:22:58 +00:00
Dan Gohman
293abcc91d
Factor out the code for mapping LLVM IR condition opcodes to
...
ISD condition opcodes into helper functions.
llvm-svn: 57710
2008-10-17 18:18:45 +00:00
Chris Lattner
8e2ef196ae
add support for 128 bit inputs on both x86-64 and x86-32.
...
llvm-svn: 57709
2008-10-17 18:15:05 +00:00
Chris Lattner
c7e65f4377
Fix a bug where the x86 backend would reject 64-bit r constraints when
...
in 32-bit mode instead of assigning a register pair. This has nothing to
do with PR2356, but I happened to notice it while working on it.
llvm-svn: 57704
2008-10-17 17:59:52 +00:00
Chris Lattner
052092bf9c
Fix PR2356 on PowerPC: if we have an input and output that are tied together
...
that have different sizes (e.g. i32 and i64) make sure to reserve registers for
the bigger operand.
llvm-svn: 57699
2008-10-17 17:52:49 +00:00
Mon P Wang
fd6735649e
Fixed vec_set_v2di signature
...
llvm-svn: 57696
2008-10-17 17:39:34 +00:00
Chris Lattner
00c5d69998
remove an xfailed test.
...
llvm-svn: 57695
2008-10-17 17:26:48 +00:00
Chris Lattner
e212b970cf
remove this test: it is xfailed anyway, and is failing for a reason
...
other than why it was xfailed.
llvm-svn: 57694
2008-10-17 17:26:19 +00:00
Ted Kremenek
5870046c43
"Implement" GRExprEngine::VisitLValue for ObjCPropertyRefExpr. This is only a bandid; we need to properly handle properties by using locv/nonloc objects and specially handling property assignments in the transfer function for BinaryOperator.
...
llvm-svn: 57693
2008-10-17 17:24:14 +00:00
Evan Cheng
27c3702267
Fix lfence and mfence encoding. These look like MRM5r and MRM6r instructions except they do not have any operands. The RegModRM byte is encoded with register number 0.
...
llvm-svn: 57692
2008-10-17 17:14:20 +00:00
Evan Cheng
9e23d746bf
getX86RegNum has long been moved to X86RegisterInfo.
...
llvm-svn: 57691
2008-10-17 17:12:18 +00:00
Chris Lattner
3b1833c9b4
refactor some code into a helper method, no functionality change.
...
llvm-svn: 57690
2008-10-17 17:05:25 +00:00
Chris Lattner
860df6e84c
Keep track of *which* input constraint matches an output
...
constraint. Reject asms where an output has multiple
input constraints tied to it.
llvm-svn: 57687
2008-10-17 16:47:46 +00:00
Chris Lattner
ef8901722e
add an assert so that PR2356 explodes instead of running off an
...
array. Improve some minor comments, refactor some helpers in
AsmOperandInfo. No functionality change for valid code.
llvm-svn: 57686
2008-10-17 16:21:11 +00:00
Daniel Dunbar
ff3c6747ef
More Obj-C type encoding improvements.
...
- Encode unions and bit-fields correctly.
- Accept option to name record fields (used for NeXT runtime).
llvm-svn: 57685
2008-10-17 16:17:37 +00:00
Daniel Dunbar
b9fd902fdc
Change CGDebugInfo::setLocation to just ignore invalid locations. This
...
simplifies clients.
Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.
llvm-svn: 57684
2008-10-17 16:15:48 +00:00
Daniel Dunbar
472175e545
Exercise #pragma pack(pop, <width>) in test case.
...
llvm-svn: 57683
2008-10-17 16:05:47 +00:00
Gabor Greif
ca01496e59
remove spurious space in link
...
llvm-svn: 57677
2008-10-17 14:43:58 +00:00