Commit Graph

95419 Commits

Author SHA1 Message Date
Caroline Tice 5c2816d903 Move the embedded Python interpreter onto a separate thread, to prevent
main thread from having to wait on it (which was causing some I/O 
hangs).

llvm-svn: 118700
2010-11-10 19:18:14 +00:00
Rafael Espindola 36ef57d2eb Use MCSectionELF in places we know we have an ELF section.
llvm-svn: 118699
2010-11-10 19:05:07 +00:00
Dan Gohman d209911642 Use getValueOperand() and getPointerOperand() on load and store
instructions instead of hard-coding operand numbers.

llvm-svn: 118698
2010-11-10 19:03:33 +00:00
Johnny Chen fec456da47 Trivial fix for an error message.
llvm-svn: 118697
2010-11-10 19:02:11 +00:00
Dan Gohman f899c87343 Rename AccessesArguments and AccessesArgumentsReadonly, and rewrite
their comments.

llvm-svn: 118696
2010-11-10 18:30:00 +00:00
Johnny Chen b1a06f3fff Remove @skip decorator:
@unittest2.skip("rdar://problem/8648070 'expression *bar_ptr' seg faults")

It has been fixed by r118672.

llvm-svn: 118695
2010-11-10 18:25:18 +00:00
Duncan Sands f3b1bf1606 Teach InstructionSimplify how to look through PHI nodes. Since PHI
nodes can be used in loops, this could result in infinite looping
if there is no recursion limit, so add such a limit.  It is also
used for the SelectInst case because in theory there could be an
infinite loop there too if the basic block is unreachable.

llvm-svn: 118694
2010-11-10 18:23:01 +00:00
Dan Gohman ebfb6fb563 Fix a copy+pasto Duncan noticed.
llvm-svn: 118693
2010-11-10 18:18:23 +00:00
Dan Gohman 066c1bb1e9 Add a doesAccessArgPointees helper function, and update code to use
it, and to be consistent.

llvm-svn: 118692
2010-11-10 18:17:28 +00:00
Jim Ingham 08feef8861 Remove an obsolete reference to immediate plans.
llvm-svn: 118691
2010-11-10 18:17:03 +00:00
Devang Patel 13bcf4d131 Zap white spaces, test commit email.
llvm-svn: 118690
2010-11-10 18:11:11 +00:00
Fariborz Jahanian a0a9d85a5d Check for duplicate declaration of a property in current and
other class extensions. // rdar://7629420

llvm-svn: 118689
2010-11-10 18:01:36 +00:00
Jim Grosbach ca21cd749e Simplify and clean up MC symbol lookup for ARM constant pool values. This fixes
double quoting of ObjC symbol names in constant pool entries.

rdar://8652107

llvm-svn: 118688
2010-11-10 17:59:10 +00:00
Dan Gohman 2577580967 Factor out the code for testing whether a function accesses
arbitrary memory into a helper function, and adjust some comments.

llvm-svn: 118687
2010-11-10 17:34:04 +00:00
Dan Gohman 3cd9145da6 Give NonLocalDepResult a NonLocalDepEntry member, replacing
indivudal members holding the same data, to clarify the relationship
between NonLocalDepResult and NonLocalDepEntry.

llvm-svn: 118686
2010-11-10 17:15:52 +00:00
Tobias Grosser 61cb245436 Detect if llvm-gcc is built on dragonegg.
Store the flags needed to disable optimizations and to emit LLVM-IR depending on
the version of llvm-gcc used.

llvm-svn: 118684
2010-11-10 16:31:34 +00:00
Michael J. Spencer b39a89716f Fix Whitespace.
llvm-svn: 118683
2010-11-10 15:06:00 +00:00
Michael J. Spencer 885f18cddf System/Path: Update comments to match code.
llvm-svn: 118682
2010-11-10 15:05:50 +00:00
Michael J. Spencer 909d238eba System/Win32/Path: Implement isSymLink.
llvm-svn: 118681
2010-11-10 15:05:39 +00:00
Duncan Sands b0579e9d3f Simplify binary operations where one operand is a select instruction.
The simplifications performed here never create new instructions, they
only return existing instructions (or a constant), and so are always a
win.  In theory they should transform (for example)
  %z = and i32 %x, %y
  %s = select i1 %cond, i32 %y, i32 %z
  %r = and i32 %x, %s
into
  %r = and i32 %x, y
but in practice they get into a fight with instcombine, and lose.
Unfortunately instcombine does a poor job in this case.  Nonetheless
I'm committing this transform to make it easier to discuss what to
do to make peace with instcombine.

llvm-svn: 118679
2010-11-10 13:00:08 +00:00
NAKAMURA Takumi 23ebef1456 Win32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check by FILE_TYPE_CHAR. It must be better to check it with Console API.
The special file "NUL" is FILE_TYPE_CHAR with GetFileType(h). It was treated as display device and discarding output to NUL had failed. (eg. opt -o nul)

llvm-svn: 118678
2010-11-10 08:37:47 +00:00
Duncan Sands 812834b86c There is no EndPtr anymore - reinterpret the original comment in terms
of InputData.

llvm-svn: 118677
2010-11-10 07:46:36 +00:00
John McCall ad31b5f2cb Propagate the deprecated and unavailable attributes from a
@property declaration to the autogenerated methods.  I'm uncertain
whether this should apply to attributes in general, but these are
a reasonable core.

Implements rdar://problem/8617301

llvm-svn: 118676
2010-11-10 07:01:40 +00:00
Ted Kremenek 5eec2b0bd3 Region-allocate all AttributeList objects from a factory object instead of manually managing them
using new/delete and OwningPtrs.  After memory profiling Clang, I witnessed periodic leaks of these
objects; digging deeper into the code, it was clear that our management of these objects was a mess.  The ownership rules were murky at best, and not always followed.  Worse, there are plenty of error paths where we could screw up.

This patch introduces AttributeList::Factory, which is a factory class that creates AttributeList
objects and then blows them away all at once.  While conceptually simple, most of the changes in
this patch just have to do with migrating over to the new interface.  Most of the changes have resulted in some nice simplifications.

This new strategy currently holds on to all AttributeList objects during the lifetime of the Parser
object.  This is easily tunable.  If we desire to have more bound the lifetime of AttributeList
objects more precisely, we can have the AttributeList::Factory object (in Parser) push/pop its
underlying allocator as we enter/leave key methods in the Parser.  This means that we get
simple memory management while still having the ability to finely control memory use if necessary.

Note that because AttributeList objects are now BumpPtrAllocated, we may reduce malloc() traffic
in many large files with attributes.

This fixes the leak reported in: <rdar://problem/8650003>

llvm-svn: 118675
2010-11-10 05:59:39 +00:00
Argyrios Kyrtzidis 2703bebc58 Replace UsingDecl's SmallPtrSet of UsingShadowDecls with a linked list to avoid leaking memory.
Fixes rdar://8649963.

llvm-svn: 118674
2010-11-10 05:40:41 +00:00
Rafael Espindola 66b291a41b Add support for Ubuntu Jaunty.
llvm-svn: 118673
2010-11-10 05:00:22 +00:00
Greg Clayton 2d95dc9b22 Modified lldb_private::SymboleFile to be able to override where its TypeList
comes from by using a virtual function to provide it from the Module's
SymbolVendor by default. This allows the DWARF parser, when being used to
parse DWARF in .o files with a parent DWARF + debug map parser, to get its
type list from the DWARF + debug map parser so when we go and find full 
definitions for types (that might come from other .o files), we can use the
type list from the debug map parser. Otherwise we ended up mixing clang types
from one .o file (say a const pointer to a forward declaration "class A") with
the a full type from another .o file. This causes expression parsing, when 
copying the clang types from those parsed by the DWARF parser into the 
expression AST, to fail -- for good reason. Now all types are created in the
same list.

Also added host support for crash description strings that can be set before
doing a piece of work. On MacOSX, this ties in with CrashReporter support
that allows a string to be dispalyed when the app crashes and allows 
LLDB.framework to print a description string in the crash log. Right now this
is hookup up the the CommandInterpreter::HandleCommand() where each command
notes that it is about to be executed, so if we crash while trying to do this
command, we should be able to see the command that caused LLDB to exit. For
all other platforms, this is a nop.

llvm-svn: 118672
2010-11-10 04:57:04 +00:00
Jim Grosbach f23b2d9d8d Update ARMConstantPoolValue to not use a modifier string. Use an explicit
VariantKind marker to indicate the additional information necessary. Update
MC to handle the new Kinds. rdar://8647623

llvm-svn: 118671
2010-11-10 03:26:07 +00:00
John McCall a8987a294d Friend function declarations can overload with tag declarations.
Fixes PR7915.

llvm-svn: 118670
2010-11-10 03:01:53 +00:00
John McCall 9b72f89f0f Diagnose attempst to template using declarations and using directives.
Recover from the latter and fail early for the former.  Fixes PR8022.

llvm-svn: 118669
2010-11-10 02:40:36 +00:00
Bruno Cardoso Lopes a4ceea8cd8 Add a test to the previous added clo instruction. Patch by Akira again
llvm-svn: 118668
2010-11-10 02:22:44 +00:00
Bruno Cardoso Lopes 67fc18a493 Add clo instruction. Patch by Akira Hatanaka (ahatanaka@mips.com) with some minor tweaks
llvm-svn: 118667
2010-11-10 02:13:22 +00:00
Sean Callanan b1620224e6 Fixed a bug where the LLVM disassembler was
ignoring the show_address parameter.

llvm-svn: 118666
2010-11-10 01:38:28 +00:00
Dale Johannesen 0171dc30ff When checking that the necessary bits are zero in
order to reduce ((x<<30)>>24) to x<<6, check the
correct bits.  PR 8547.

llvm-svn: 118665
2010-11-10 01:30:56 +00:00
Bill Wendling 91607f878c Emit a '!' if this is a "writeback" register or memory address.
llvm-svn: 118662
2010-11-10 01:07:54 +00:00
Jakob Stoklund Olesen de5c4dc24b Simplify the LiveRangeEdit::canRematerializeAt() interface a bit.
llvm-svn: 118661
2010-11-10 01:05:12 +00:00
Dan Gohman 2694e14087 Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis
chaining and simplify FunctionAttrs' GetModRefBehavior logic.

llvm-svn: 118660
2010-11-10 01:02:18 +00:00
Chris Lattner 49609d56d7 make sure #pragma clang is treated the same way as #pragma gcc in -E mode,
unknown pragmas should just be passed through to the .i file.

llvm-svn: 118659
2010-11-10 01:00:49 +00:00
John McCall fd81c52947 Tweak to bitfield-overflow warning: don't warn about storing
a positive value into a signed bitfield of the exact width of
the value.

llvm-svn: 118657
2010-11-10 00:26:50 +00:00
Matt Beaumont-Gay 55c4cc76ce Rename a parameter to avoid confusion with a local variable
llvm-svn: 118656
2010-11-10 00:08:58 +00:00
Johnny Chen cc78b0b67f Add more comments on LLDBTestResult class.
llvm-svn: 118655
2010-11-09 23:56:14 +00:00
Greg Clayton 7a34528d68 Did a lot of code cleanup.
Fixed the DWARF plug-in such that when it gets all attributes for a DIE, that
it omits the DW_AT_sibling and DW_AT_declaration when getting attributes
from a DW_AT_abstract_origin or DW_AT_specification DIE.

llvm-svn: 118654
2010-11-09 23:46:37 +00:00
Bill Wendling e9a9c6da04 Emit the warning about the register list not being in ascending order only once.
llvm-svn: 118653
2010-11-09 23:45:59 +00:00
Dale Johannesen 7e62965a7d Jim's recent fixes 118600, 118587, 118513 have made these work.
llvm-svn: 118652
2010-11-09 23:43:34 +00:00
Rafael Espindola 9bb44a5ce8 Fixed version of 118639 with an extra assert to catch similar problems
earlier. Implicit bool -> int conversions are evil!

llvm-svn: 118651
2010-11-09 23:42:07 +00:00
Johnny Chen bb4f8e6f7b Rephrase the output message about session information; make it both "session logs".
llvm-svn: 118650
2010-11-09 23:42:00 +00:00
John McCall 0e6cfaf6c0 Typo.
llvm-svn: 118649
2010-11-09 23:36:43 +00:00
Bill Wendling bed9465a96 s/std::vector/SmallVector/
llvm-svn: 118648
2010-11-09 23:28:44 +00:00
John McCall d2a5312e14 Add a warning for implicit truncation of constant values due to
bitfield assignment.

Implements rdar://problem/7809123

llvm-svn: 118647
2010-11-09 23:24:47 +00:00
Johnny Chen 07569be70c When dumping the session log for a failed/errored test, also emit the command to
invoke the test driver to rerun the very same test.  Example output:

/Volumes/data/lldb/svn/trunk/test $ tail 2010-11-09-14_51_34/ExpectedFailure-TestSettings.SettingsCommandTestCase.test_set_output_path.log 

Traceback (most recent call last):
  File "/Volumes/data/lldb/svn/trunk/test/settings/TestSettings.py", line 136, in test_set_output_path
    "'stdout.txt' exists due to target.process.output-path.")
AssertionError: False is not True : 'stdout.txt' exists due to target.process.output-path.


To rerun this test, issue the following command from the 'test' directory:

./dotest.py -v -t -f SettingsCommandTestCase.test_set_output_path

llvm-svn: 118646
2010-11-09 22:56:12 +00:00