Commit Graph

43277 Commits

Author SHA1 Message Date
Dale Johannesen 0d1d3df564 change comments per review
llvm-svn: 50300
2008-04-25 21:16:07 +00:00
Ted Kremenek d71ba91a7d fix broken tag
llvm-svn: 50299
2008-04-25 20:31:58 +00:00
Ted Kremenek c7dde7a25b Another link fix.
llvm-svn: 50298
2008-04-25 20:30:34 +00:00
Ted Kremenek d6db434162 Fix links.
llvm-svn: 50297
2008-04-25 20:29:37 +00:00
Evan Cheng 402572a149 Update tests.
llvm-svn: 50293
2008-04-25 20:13:47 +00:00
Evan Cheng 1e78184a99 Extract the lower 64-bit if a MMX value is passed in a XMM register.
llvm-svn: 50292
2008-04-25 20:13:28 +00:00
Evan Cheng 5ba02020e6 Fix illegal MMX_MOVDQ2Qrr pattern. vector_extract result must be a scalar value.
llvm-svn: 50291
2008-04-25 20:12:46 +00:00
Evan Cheng ccde6dd016 Special handling for MMX values being passed in either GPR64 or lower 64-bits of XMM registers.
llvm-svn: 50289
2008-04-25 19:11:04 +00:00
Ted Kremenek dd38e0bd0d Fix bug in BugReporter where we didn't handle emitting diagnostics for
empty CFGBlocks that only contained a terminator.

Added improved diagnostics for break and continue statements and default branches in switch statements.

This fixes <rdar://problem/5889244>.

llvm-svn: 50286
2008-04-25 19:01:27 +00:00
Ted Kremenek 6d2eeddff5 Added some notes about the LLVM "checker". This isn't a public link yet; still refining.
llvm-svn: 50283
2008-04-25 18:44:36 +00:00
Dan Gohman ca95a5f49f Remove the code from CodeGenPrepare that moved getresult instructions
to the block that defines their operands. This doesn't work in the
case that the operand is an invoke, because invoke is a terminator
and must be the last instruction in a block.

Replace it with support in SelectionDAGISel for copying struct values
into sequences of virtual registers.

llvm-svn: 50279
2008-04-25 18:27:55 +00:00
Evan Cheng 6d653b58f9 Fix MMX_MOVQ2DQrr pattern. It's illegal to do a bitconvert from a smaller type to a larger one.
llvm-svn: 50278
2008-04-25 18:19:54 +00:00
Chris Lattner b58a365cb6 new testcase
llvm-svn: 50274
2008-04-25 18:11:06 +00:00
Nate Begeman 6f94f61317 Pull the code to perform an INSERT_VECTOR_ELT in memory out into its own
function, and then use it to fix a bug in SplitVectorOp that expected inserts
to always have constant insertion indices.

llvm-svn: 50273
2008-04-25 18:07:40 +00:00
Anton Korobeynikov f18ec8b160 Update test
llvm-svn: 50272
2008-04-25 17:54:21 +00:00
Nate Begeman ca270ad96f Feedback from chris
llvm-svn: 50271
2008-04-25 17:45:52 +00:00
Chris Lattner 33bd24bd92 add a note
llvm-svn: 50267
2008-04-25 17:25:00 +00:00
Evan Cheng 715eaa031c 80 col violation.
llvm-svn: 50266
2008-04-25 17:21:40 +00:00
Nick Lewycky 4d43d3c72c Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.

llvm-svn: 50265
2008-04-25 16:53:59 +00:00
Chris Lattner 73669defed remove the 'unused static' diagnostic from codegen. This should be
reimplemented in Sema someday.  This is tracked in PR2236.  Until then
disabling it removes some bogus diagnostics (see 2236).

llvm-svn: 50263
2008-04-25 15:47:13 +00:00
Nuno Lopes 0276933b4b initial support for recognizing __transparent_union__ attributes
comments on the ML will follow

llvm-svn: 50262
2008-04-25 09:32:00 +00:00
Evan Cheng 59834d1c7a Not checking for intrinsics which do not have a chain operand.
llvm-svn: 50260
2008-04-25 08:55:28 +00:00
Evan Cheng 051da5deaa - Switch from std::set to SmallPtrSet.
- Add comments.

llvm-svn: 50259
2008-04-25 08:22:20 +00:00
Evan Cheng df38b35a1e MMX argument passing fixes:
On Darwin / Linux x86-32, v8i8, v4i16, v2i32 values are passed in MM[0-2].                                                                                                                                      
On Darwin / Linux x86-32, v1i64 values are passed in memory.                                                                                                                                                    
On Darwin x86-64, v8i8, v4i16, v2i32 values are passed in XMM[0-7].                                                                                                                                     
On Darwin x86-64, v1i64 values are passed in 64-bit GPRs.

llvm-svn: 50257
2008-04-25 07:56:45 +00:00
Nate Begeman 6fed3b2038 Teach the PruningFunctionCloner how to look through loads with
ConstantExpression GEPs pointing into constant globals.

llvm-svn: 50256
2008-04-25 06:37:06 +00:00
Chris Lattner 741c7a3b49 Loosen up an assertion to allow intrinsics. I really have no
idea what this code (findNonImmUse) does, so I'm only guessing 
that this is the right thing.  It would be really really nice
if this had comments and perhaps switched to SmallPtrSet
(hint hint) :)

This fixes rdar://5886601, a crash on gcc.target/i386/sse4_1-pblendw.c

llvm-svn: 50252
2008-04-25 05:13:01 +00:00
Chris Lattner f7de528463 Don't infininitely thread branches when a threaded edge
goes back to the block, e.g.:

  Threading edge through bool from 'bb37.us.thread3829' to 'bb37.us' with cost: 1, across block:

bb37.us:		; preds = %bb37.us.thread3829, %bb37.us, %bb33
	%D1361.1.us = phi i32 [ %tmp36, %bb33 ], [ %D1361.1.us, %bb37.us ], [ 0, %bb37.us.thread3829 ]		; <i32> [#uses=2]
	%tmp39.us = icmp eq i32 %D1361.1.us, 0		; <i1> [#uses=1]
	br i1 %tmp39.us, label %bb37.us, label %bb42.us

llvm-svn: 50251
2008-04-25 04:12:29 +00:00
Gordon Henriksen 2ad5aef5e6 PR2245: Misleading parameter name in llvm-c/Core.h:LLVMConstArray
Applying fix by Frits van Bommel.

llvm-svn: 50250
2008-04-25 03:21:19 +00:00
Gordon Henriksen 7993f4a6d1 PR2202: LLVMCreateInterpreter creates a JIT
Applying fix by Frits van Bommel.

llvm-svn: 50249
2008-04-25 02:52:30 +00:00
Ted Kremenek 99131c9f5a Handle dereferences of function pointers (which return a handle to the function).
llvm-svn: 50246
2008-04-25 01:56:50 +00:00
Ted Kremenek 2e5092320e Don't abort on GetRVal when the LVal is a StringLiteralVal.
llvm-svn: 50245
2008-04-25 01:45:38 +00:00
Ted Kremenek 4dd412e022 Don't emit empty strings for path diagnostics when taking the default branch of a switch statement that has no label.
llvm-svn: 50242
2008-04-25 01:29:56 +00:00
Ted Kremenek ecbdf75049 Do a better job at computing dead symbols.
Implemented support for better localized leaks in the CF reference count checker.
Now leaks should be flagged close to where they occur.

This should implement the desired functionality in <rdar://problem/5879592>, although the diagnostics still need to be improved.

llvm-svn: 50241
2008-04-25 01:25:15 +00:00
Evan Cheng 9165e165dc Fix bug in x86 memcpy / memset lowering. If there are trailing bytes not handled by rep instructions, a new memcpy / memset is introduced for them. However, since source / destination addresses are already adjusted, their offsets should be zero.
llvm-svn: 50239
2008-04-25 00:26:43 +00:00
Ted Kremenek b0daf2f6f5 Add preliminary support for flagging leaks around when they happen (doesn't work yet).
llvm-svn: 50237
2008-04-24 23:57:27 +00:00
Ted Kremenek ddb4887ed6 Implement != for DenseSet iterators.
llvm-svn: 50236
2008-04-24 23:49:45 +00:00
Ted Kremenek 3846533d1c Added iterator support for DenseSet.
llvm-svn: 50235
2008-04-24 23:48:12 +00:00
Ted Kremenek 64fa3beccc Better handling for directory names in HTML diagnostics. Work in progress.
llvm-svn: 50234
2008-04-24 23:37:03 +00:00
Ted Kremenek ae8014cb7e More boilerplate for handling specialized-transfer function logic for dead symbols.
llvm-svn: 50233
2008-04-24 23:35:58 +00:00
Evan Cheng a42d24003d New test.
llvm-svn: 50229
2008-04-24 20:01:58 +00:00
Fariborz Jahanian 0a070ff570 Patch to diagnose inconsistancies between properties declared in current and
its super class. This patch is incomplete.

llvm-svn: 50228
2008-04-24 19:58:34 +00:00
Evan Cheng 608eeef5ce Adjust inline cost computation to be less aggressive.
llvm-svn: 50222
2008-04-24 18:42:47 +00:00
Ted Kremenek 3812b7676c Added initial boilerplate in GRExprEngine to allow checker-specific transfer
function logic to act when symbols become dead.

llvm-svn: 50221
2008-04-24 18:31:42 +00:00
Ted Kremenek 6e06f91085 Added uninitialized-values (path-sensitive) test case as a regression test
for the fix in r50178 (http://llvm.org/viewvc/llvm-project?rev=50178&view=rev).
This fix was for <rdar://problem/5881148>.

llvm-svn: 50220
2008-04-24 18:28:14 +00:00
Ted Kremenek 78120c8b3a Added test case for functionality fix in rdar://problem/5886141 (handle variadic CF Create functions).
llvm-svn: 50219
2008-04-24 18:17:14 +00:00
Devang Patel f7c3979bb0 Add EXTRA_OPTIONS on the llvmgxx command line.
llvm-svn: 50217
2008-04-24 17:59:03 +00:00
Devang Patel 1a5cfb05b5 Add EXTRA_OPTIONS on the llvmgcc command line.
llvm-svn: 50216
2008-04-24 17:54:25 +00:00
Ted Kremenek f7141597e8 CF reference count checker: handle variadic functions that allocate CF objects.
This fixes <rdar://problem/5886141>.

Part of this change resulted in creating sparser summaries.  I also added
some more comments and did some minor code cleanups.

llvm-svn: 50214
2008-04-24 17:22:33 +00:00
Ted Kremenek b44485b835 Have ValidateOutputConstraint return false instead of firing an assertion
when processing a constraint we don't understand.  This allows the frontend
to gracefully fail.

llvm-svn: 50213
2008-04-24 16:36:38 +00:00
Gabor Greif 218c8b9d0a overlook Output directory
llvm-svn: 50212
2008-04-24 16:17:27 +00:00