Jim Grosbach
3ac059369b
Add a newline to debug output
...
llvm-svn: 111453
2010-08-18 23:14:02 +00:00
Chris Lattner
3decde9305
refix PR1143 by making basicaa analyze zexts of indices aggresively,
...
which I broke with a recent patch.
llvm-svn: 111452
2010-08-18 23:09:49 +00:00
Daniel Dunbar
79acdd9402
libclang: Put clang_reparseTranslationUnit inside a crash recovery context.
...
llvm-svn: 111451
2010-08-18 23:09:31 +00:00
Evan Cheng
25b6068b8f
If any def of a machine-sink candidate has local uses, it's obviously not safe to sink it to a successor block. This bug has been hidden because a later check for critical-edge disable these illegal optimizations. This patch should significantly reduce the amount of time spent on checking dominator information for obviously unsafe sinking.
...
llvm-svn: 111450
2010-08-18 23:09:25 +00:00
Daniel Dunbar
211a787eaf
CrashRecovery: Add #pragma clang __debug handle_crash, useful when debugging
...
CrashRecovery since it avoids sending a signal which may be intercepted by the
debugger.
llvm-svn: 111449
2010-08-18 23:09:23 +00:00
Daniel Dunbar
ec29d712d4
c-index-test: Change -test-load-source-repase to only use remapped files for the
...
reparse, to allow testing distinct inputs.
llvm-svn: 111448
2010-08-18 23:09:16 +00:00
Douglas Gregor
f0708dee83
Fix crasher with IgnoringDiagClient
...
llvm-svn: 111447
2010-08-18 23:03:13 +00:00
Chris Lattner
26403acef7
GetLinearExpression is only called when TD is non-null, pass as
...
a reference instead of pointer.
llvm-svn: 111445
2010-08-18 22:52:09 +00:00
Chris Lattner
1b9c38796e
rework GEP decomposition to make a new VariableGEPIndex struct instead of
...
using a pair. This tidies up the code a bit. While setting things up, add
a (currently unused) field to keep track of how the value is extended.
llvm-svn: 111444
2010-08-18 22:47:56 +00:00
Jim Grosbach
dbfc2ce95d
Enable ARM base register reuse to local stack slot allocation. Whenever a new
...
frame index reference to an object in the local block is seen, check if
it's near enough to any previously allocaated base register to re-use.
rdar://8277890
llvm-svn: 111443
2010-08-18 22:44:49 +00:00
Dan Gohman
492c2ea31e
Add a testcase to verify that commands don't crash when they hit
...
errors on stderr.
llvm-svn: 111440
2010-08-18 22:35:56 +00:00
Douglas Gregor
2dd19f1d5f
Simplify the ownership model for DiagnosticClients, which was really
...
convoluted and a bit leaky. Now, the Diagnostic object owns its
DiagnosticClient.
llvm-svn: 111437
2010-08-18 22:29:43 +00:00
Dan Gohman
c825ceefb4
Make raw_fd_ostream consider itself the owner of STDOUT_FILENO when
...
constructed with an output filename of "-". In particular, allow the
file descriptor to be closed, and close the file descriptor in the
destructor if it hasn't been explicitly closed already, to ensure
that any write errors are detected.
llvm-svn: 111436
2010-08-18 22:26:19 +00:00
Dan Gohman
82656fb0e1
When sending stats output to stdout for grepping, don't emit normal
...
output to standard output also.
llvm-svn: 111435
2010-08-18 22:22:44 +00:00
Eli Friedman
4f0352f57b
Add/update a bunch of svn:ignore properties; get rid of empty folder
...
lib/Runtime.
llvm-svn: 111434
2010-08-18 22:15:06 +00:00
Chris Lattner
9f7500f57b
move gep decomposition out of ValueTracking into BasicAA. The form of
...
decomposition that it is doing is very basicaa specific and is only used
by basicaa.
Now with less tree breakingness.
llvm-svn: 111433
2010-08-18 22:07:29 +00:00
Dan Gohman
3490ff4002
Tidy.
...
llvm-svn: 111432
2010-08-18 22:04:43 +00:00
Bill Wendling
ad2aa57774
Minor simplification. Gets rid of a needless temporary.
...
llvm-svn: 111430
2010-08-18 21:32:07 +00:00
Johnny Chen
5a2133909d
Simplify the assert matched-string criterion.
...
llvm-svn: 111429
2010-08-18 21:28:35 +00:00
Douglas Gregor
fb640869ed
There is no pointer conversion between to similar types (i.e., same
...
type ignoring cv-qualifiers). These are qualification
conversions. Fixes PR7934.
llvm-svn: 111428
2010-08-18 21:25:30 +00:00
Dan Gohman
b37af7de47
Call llvm::remove_fatal_error_handler before deallocating objects
...
which are used by the error handling functions.
llvm-svn: 111427
2010-08-18 21:23:17 +00:00
Tom Care
b9933f365e
Added psuedo-constant analysis and integrated it into the false positive reduction stage in IdempotentOperationChecker.
...
- Renamed IdempotentOperationChecker::isConstant to isConstantOrPseudoConstant to better reflect the function
- Changed IdempotentOperationChecker::PreVisitBinaryOperator to only run 'CanVary' once on undefined assumptions
- Created new PsuedoConstantAnalysis class and added it to AnalysisContext
- Changed IdempotentOperationChecker to exploit the new analysis
- Updated tests with psuedo-constants
- Added check to IdempotentOperationChecker to see if a Decl is const qualified
llvm-svn: 111426
2010-08-18 21:17:24 +00:00
Owen Anderson
80d19f0905
Use ConstantRange to propagate information through value definitions.
...
llvm-svn: 111425
2010-08-18 21:11:37 +00:00
Dan Gohman
2470818942
When sending stats output to stdout for grepping, don't emit normal
...
output to standard output also.
llvm-svn: 111401
2010-08-18 20:32:46 +00:00
Jakob Stoklund Olesen
e98030ad58
Thinking about it, we don't need MachineDominatorTree after all. The DomValue
...
map discovers the iterated dominance frontier for free.
llvm-svn: 111400
2010-08-18 20:29:53 +00:00
Dan Gohman
50377a366f
Introduce a ScopedFatalErrorHandler class to make it easy to register
...
fatal error handlers which automatically get unregistered at the end
of a scope.
llvm-svn: 111398
2010-08-18 20:16:39 +00:00
Jakob Stoklund Olesen
f4088b022a
Revert r111394. It was too aggressive.
...
We must complete the DFS, otherwise we might miss needed phi-defs, and
prematurely color live ranges with a non-dominating value.
This is not a big deal since we get to color more of the CFG and the next
mapValue call will be faster.
llvm-svn: 111397
2010-08-18 20:06:05 +00:00
Jim Ingham
e1be14df1e
Some Block:: methods wandered to the end of the file after the BlockList:: methods. I moved them back.
...
llvm-svn: 111396
2010-08-18 19:29:16 +00:00
John McCall
78fbb61ed7
Contextual arity is a feature of mangling expressions; kill off
...
mangleCallExpression. Also, operator names with unknown arity should
be mangled as binary operators; this is actually covered by an oddly-
positioned sentence in the ABI document. Fixes PR7891.
llvm-svn: 111395
2010-08-18 19:18:59 +00:00
Jakob Stoklund Olesen
5b4cb08471
Aggressively prune the DFS when inserting phi-defs.
...
llvm-svn: 111394
2010-08-18 19:00:11 +00:00
Jakob Stoklund Olesen
ce6f055b4d
Add the LiveIntervalMap class. Don't hook it up yet.
...
LiveIntervalMap maps values from a parent LiveInterval to a child interval that
is a strict subset. It will create phi-def values as needed to preserve the
VNInfo SSA form in the child interval.
This leads to an algorithm very similar to the one in SSAUpdaterImpl.h, but with
enough differences that the code can't be reused:
- We don't need to manipulate PHI instructions.
- LiveIntervals have kills.
- We have MachineDominatorTree.
- We can use df_iterator.
llvm-svn: 111393
2010-08-18 19:00:08 +00:00
Jakob Stoklund Olesen
2ba69d2313
Add df_iterator::getPathLength and getPath as a way of getting a path from the
...
entry node to the current node.
llvm-svn: 111392
2010-08-18 19:00:05 +00:00
Howard Hinnant
5e2f7b89e9
Updated by-chapter chart with weekly test results. Also did some prototyping on result_of, but if-def'd out the prototyped part (which the LWG may or may not accept)
...
llvm-svn: 111389
2010-08-18 18:52:04 +00:00
Sean Callanan
eaacbc9da6
Patch by Bill Lynch fixing handling of the pid
...
in the IR transformation passes.
llvm-svn: 111388
2010-08-18 18:50:51 +00:00
Daniel Dunbar
583c3b775e
libclang: Put clang_parseTranslationUnit inside a crash recovery context.
...
llvm-svn: 111387
2010-08-18 18:43:17 +00:00
Daniel Dunbar
c91f2fff98
libclang: Implicitly enable crash recovery when using the libclang APIs. We may need to add an explicit API call, but hopefully we can make the crash recovery seamless enough that it doesn't make sense to turn it off.
...
llvm-svn: 111386
2010-08-18 18:43:14 +00:00
Daniel Dunbar
fbeeb130d8
Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. The
...
form of", it doesn't pass tests.
llvm-svn: 111385
2010-08-18 18:43:08 +00:00
Bill Wendling
0d323aef46
Improve whitespace.
...
llvm-svn: 111384
2010-08-18 18:41:13 +00:00
Bill Wendling
817e857b13
Marked with ATTRIBUTE_USED so that clang doesn't complain.
...
llvm-svn: 111383
2010-08-18 18:40:57 +00:00
Owen Anderson
208636fa33
Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues.
...
llvm-svn: 111382
2010-08-18 18:39:01 +00:00
Greg Clayton
d1f57fc6a3
Avoid an assertion crash by avoiding a circular dependency in the objective
...
C builtin type conversion.
llvm-svn: 111381
2010-08-18 18:29:55 +00:00
Greg Clayton
ad3843c93b
Changed "Error Value::GetValueAsData (...)" to set the data extractor byte
...
order and address size correctly when the value comes from a file address.
Values have "file" addresses when they are globals and the debug information
specifies that they live in the object file at a given address (DWARF will
represent this as a location "DW_OP_addr <addr>"). This causes global pointers
to correctly extract their children on 64 bit programs.
llvm-svn: 111380
2010-08-18 18:28:52 +00:00
Jim Ingham
ea480e507c
Added call stacks with inlined functions higher on the stack, and non-inlined functions at the bottom.
...
llvm-svn: 111379
2010-08-18 18:28:17 +00:00
Greg Clayton
52d64d9ea9
Added a Thread accessor to the register context.
...
llvm-svn: 111378
2010-08-18 18:25:47 +00:00
Greg Clayton
ddfda9d7a2
Allow the SBDebugger to construct itself with the default constructor so
...
objects can own one of these objects and assign a valid value at a later point.
llvm-svn: 111377
2010-08-18 18:25:20 +00:00
Daniel Dunbar
8e92d9b68d
MC/ELF: Allow null values in virtual sections, ELF doesn't use special
...
directives for putting contents in .bss, for example.
llvm-svn: 111376
2010-08-18 18:22:37 +00:00
Chris Lattner
54fe883203
move gep decomposition out of ValueTracking into BasicAA. The form of
...
decomposition that it is doing is very basicaa specific and is only used
by basicaa.
llvm-svn: 111375
2010-08-18 18:22:17 +00:00
Jim Grosbach
e0e9b3013f
Add hook for re-using virtual base registers for local stack slot access.
...
Nothing fancy, just ask the target if any currently available base reg
is in range for the instruction under consideration and use the first one
that is. Placeholder ARM implementation simply returns false for now.
ongoing saga of rdar://8277890
llvm-svn: 111374
2010-08-18 17:57:37 +00:00
Dan Gohman
7ba6f22b47
Eliminate some redundancy by relying on raw_fd_ostream to handle "-"
...
properly.
llvm-svn: 111373
2010-08-18 17:55:15 +00:00
Dan Gohman
083330a8f2
Allow the -analyze option to follow the -o option, which defaults to
...
standard output, instead of just hardcoding outs().
llvm-svn: 111372
2010-08-18 17:42:59 +00:00