summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* For gcc compatibility, size of a class which is zeroFariborz Jahanian2011-02-022-2/+32
| | | | | | | | but has non-empty data fields, such as array of zero length, remains zero. // rdar://8945175 llvm-svn: 124741
* Revert r124704, which uniqued code-completion strings. The spaceDouglas Gregor2011-02-022-69/+0
| | | | | | | | | savings of 25% sounds impressive, except that this amounted to only about 360k in our standard "large" completion result set (40,000 results). Since code completion is performance-sensitive, the 4% slowdown due to uniquing outweighs the 360k benefit. llvm-svn: 124737
* Add NetBSD target support. Patch by Joerg Sonnenberger.Benjamin Kramer2011-02-029-3/+320
| | | | llvm-svn: 124736
* Don't warn for -Wnon-virtual-dtor for dependent classes.Argyrios Kyrtzidis2011-02-022-1/+13
| | | | llvm-svn: 124735
* Changed the TableGen created MatchInstructionImpl() setting of ErrorInfo.Kevin Enderby2011-02-021-3/+1
| | | | | | | | | | | The algorithm for identifying which operand is invalid will now always point to some operand and not the mnemonic sometimes. The change is now that ErrorInfo is the index of the highest operand that does not match for any of the matching mnemonics records. And no longer the ~0U value when the mnemonic matches and not every record with a matching mnemonic has the same mismatching operand index. llvm-svn: 124734
* Fix breakpoint id test to work with clang as well as gcc; added a fewCaroline Tice2011-02-022-7/+28
| | | | | | | | more test cases Fixed minor bug in the breakpoint id range translation code. llvm-svn: 124729
* Missing traits::to_int_type in fstreamHoward Hinnant2011-02-021-4/+4
| | | | llvm-svn: 124727
* Qualify calls to addressof with std::. Bug 9106Howard Hinnant2011-02-029-140/+140
| | | | llvm-svn: 124726
* Update comment to match my recent change.Bob Wilson2011-02-021-2/+2
| | | | llvm-svn: 124725
* SimplifyCFG: Turn switches into sub+icmp+branch if possible.Benjamin Kramer2011-02-024-70/+39
| | | | | | | | | | | | | | | | | This makes the job of the later optzn passes easier, allowing the vast amount of icmp transforms to chew on it. We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting binary on i386-linux. The testcase from README.txt now compiles into decl %edi cmpl $3, %edi sbbl %eax, %eax andl $1, %eax ret llvm-svn: 124724
* Frontend: Factor out header include dumping (-H) into its own preprocessorDaniel Dunbar2011-02-028-41/+105
| | | | | | | | callbacks class. - Aside from being generally cleaner, this also allows -H to work correctly in modes other than standard preprocessing (e.g., -c, -MM, etc.) llvm-svn: 124723
* Add support for trampolines on the XCore.Richard Osborne2011-02-025-1/+109
| | | | llvm-svn: 124722
* An insomniac stab at making block declarations list the variables they closeJohn McCall2011-02-0214-132/+244
| | | | | | | on, as well as more reliably limiting invalid references to locals from nested scopes. llvm-svn: 124721
* Remove NoVendor and NoOS, added in commit 123990, from Triple. While itDuncan Sands2011-02-023-74/+56
| | | | | | | | | may be useful to understand "none", this is not the place for it. Tweak the fix to Normalize while there: the fix added in 123990 works correctly, but I like this way better. Finally, now that Triple understands some non-trivial environment values, teach the unittests about them. llvm-svn: 124720
* Fix test by fully specifying the platform.Nick Lewycky2011-02-021-10/+19
| | | | llvm-svn: 124719
* Turn on -momit-leaf-frame-pointer by default on all non-Darwin platforms.Nick Lewycky2011-02-021-2/+3
| | | | | | Fixes PR9121! llvm-svn: 124718
* Remove wasteful caching. This isn't needed for correctness because any functionNick Lewycky2011-02-021-23/+2
| | | | | | | | that might have changed been affected by a merge elsewhere will have been removed from the function set, and it isn't needed for performance because we call grow() ahead of time to prevent reallocations. llvm-svn: 124717
* Modified the PluginManager to be ready for loading plug-ins from a systemGreg Clayton2011-02-0218-214/+925
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LLDB plugin directory and a user LLDB plugin directory. We currently still need to work out at what layer the plug-ins will be, but at least we are prepared for plug-ins. Plug-ins will attempt to be loaded from the "/Developer/Library/PrivateFrameworks/LLDB.framework/Resources/Plugins" folder, and from the "~/Library/Application Support/LLDB/Plugins" folder on MacOSX. Each plugin will be scanned for: extern "C" bool LLDBPluginInitialize(void); extern "C" void LLDBPluginTerminate(void); If at least LLDBPluginInitialize is found, the plug-in will be loaded. The LLDBPluginInitialize function returns a bool that indicates if the plug-in should stay loaded or not (plug-ins might check the current OS, current hardware, or anything else and determine they don't want to run on the current host). The plug-in is uniqued by path and added to a static loaded plug-in map. The plug-in scanning happens during "lldb_private::Initialize()" which calls to the PluginManager::Initialize() function. Likewise with termination lldb_private::Terminate() calls PluginManager::Terminate(). The paths for the plug-in directories is fetched through new Host calls: bool Host::GetLLDBPath (ePathTypeLLDBSystemPlugins, dir_spec); bool Host::GetLLDBPath (ePathTypeLLDBUserPlugins, dir_spec); This way linux and other systems can define their own appropriate locations for plug-ins to be loaded. To allow dynamic shared library loading, the Host layer has also been modified to include shared library open, close and get symbol: static void * Host::DynamicLibraryOpen (const FileSpec &file_spec, Error &error); static Error Host::DynamicLibraryClose (void *dynamic_library_handle); static void * Host::DynamicLibraryGetSymbol (void *dynamic_library_handle, const char *symbol_name, Error &error); lldb_private::FileSpec also has been modified to support directory enumeration in an attempt to abstract the directory enumeration into one spot in the code. The directory enumertion function is static and takes a callback: typedef enum EnumerateDirectoryResult { eEnumerateDirectoryResultNext, // Enumerate next entry in the current directory eEnumerateDirectoryResultEnter, // Recurse into the current entry if it is a directory or symlink, or next if not eEnumerateDirectoryResultExit, // Exit from the current directory at the current level. eEnumerateDirectoryResultQuit // Stop directory enumerations at any level }; typedef FileSpec::EnumerateDirectoryResult (*EnumerateDirectoryCallbackType) (void *baton, FileSpec::FileType file_type, const FileSpec &spec); static FileSpec::EnumerateDirectoryResult FileSpec::EnumerateDirectory (const char *dir_path, bool find_directories, bool find_files, bool find_other, EnumerateDirectoryCallbackType callback, void *callback_baton); This allow clients to specify the directory to search, and specifies if only files, directories or other (pipe, symlink, fifo, etc) files will cause the callback to be called. The callback also gets to return with the action that should be performed after this directory entry. eEnumerateDirectoryResultNext specifies to continue enumerating through a directory with the next entry. eEnumerateDirectoryResultEnter specifies to recurse down into a directory entry, or if the file is not a directory or symlink/alias to a directory, then just iterate to the next entry. eEnumerateDirectoryResultExit specifies to exit the current directory and skip any entries that might be remaining, yet continue enumerating to the next entry in the parent directory. And finally eEnumerateDirectoryResultQuit means to abort all directory enumerations at all levels. Modified the Declaration class to not include column information currently since we don't have any compilers that currently support column based declaration information. Columns support can be re-enabled with the additions of a #define. Added the ability to find an EmulateInstruction plug-in given a target triple and optional plug-in name in the plug-in manager. Fixed a few cases where opendir/readdir was being used, but yet not closedir was being used. Soon these will be deprecated in favor of the new directory enumeration call that was added to the FileSpec class. llvm-svn: 124716
* Update this test following recent optimizer changes.Dan Gohman2011-02-021-2/+2
| | | | llvm-svn: 124715
* Remove redundant check to not warn for warn_equality_with_extra_parens if we ↵Ted Kremenek2011-02-022-20/+6
| | | | | | are in a macro. This is checked twice. llvm-svn: 124714
* Conservatively, clear optional flags, such as nsw, when performingDan Gohman2011-02-021-0/+15
| | | | | | | reassociation. No testcase, because I wasn't able to create a testcase which actually demonstrates a problem. llvm-svn: 124713
* Fix reassociate to clear optional flags, such as nsw.Dan Gohman2011-02-023-0/+44
| | | | llvm-svn: 124712
* Make sure the confirmation input reader calls fflush after writing its output.Caroline Tice2011-02-021-0/+7
| | | | | | (<rdar://problem/8946573>) llvm-svn: 124711
* Add EmulateBLXImmediate() and EmulateBLXRm() to the g_arm_opcodes and ↵Johnny Chen2011-02-023-4/+181
| | | | | | | | g_thumb_opcodes tables, which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions. llvm-svn: 124710
* Fixed a bug in the disassembler where the mandatory 0x66Sean Callanan2011-02-021-0/+1
| | | | | | | | prefix would be misinterpreted in some cases on 32-bit x86 platforms. Thanks to Olivier Meurant for identifying the bug. llvm-svn: 124709
* Given a pair of floating point load and store, if there are no other uses ofEvan Cheng2011-02-025-2/+109
| | | | | | | | | | | | | | | | | | | the load, then it may be legal to transform the load and store to integer load and store of the same width. This is done if the target specified the transformation as profitable. e.g. On arm, this can transform: vldr.32 s0, [] vstr.32 s0, [] to ldr r12, [] str r12, [] rdar://8944252 llvm-svn: 124708
* Fix test function breakpoint_command_script_parameters()'s expect-pattern so ↵Johnny Chen2011-02-021-1/+1
| | | | | | | | that it passes when using clang as the compiler to build the inferior. llvm-svn: 124707
* Added missing return statement (patch from Kirk Beitz).Greg Clayton2011-02-021-0/+1
| | | | llvm-svn: 124706
* Fix comment typo.Bob Wilson2011-02-021-1/+1
| | | | llvm-svn: 124705
* Unique code-completion strings. On Cocoa.h, this costs us about 4% inDouglas Gregor2011-02-012-0/+69
| | | | | | speed but saves us about 25% of the memory usage for strings. llvm-svn: 124704
* Added a new class, ASTDumper, that provides verboseSean Callanan2011-02-014-0/+730
| | | | | | | | | | | | | | | diagnostics of Clang AST classes for the purpose of debugging the types LLDB produces for DWARF objects. The ASTDumper is currently only used in log output if you enable verbose mode in the expression log: log enable -v lldb expr Its output then appears in the log for external variables used by the expr command. llvm-svn: 124703
* When diagnosing address-space changes, apply array-to-pointer decay first.John McCall2011-02-012-0/+8
| | | | llvm-svn: 124702
* -fapple-kext support for indirect call to virtuals dtors - wip.Fariborz Jahanian2011-02-014-2/+58
| | | | llvm-svn: 124701
* Fix name lookup issueDouglas Gregor2011-02-011-1/+1
| | | | llvm-svn: 124700
* Add support for x86-64 Mandriva 2010.2. Reported by 'rindolf' on IRC!Nick Lewycky2011-02-011-0/+3
| | | | llvm-svn: 124699
* Create a special allocator class for code completion, so that all ofDouglas Gregor2011-02-017-93/+95
| | | | | | | the string copying goes through a single place that can have associated state. llvm-svn: 124698
* Use tempfiles for the .o outputs.Matt Beaumont-Gay2011-02-011-3/+3
| | | | llvm-svn: 124697
* Enable the self-init checker in scan-build.Ted Kremenek2011-02-011-0/+1
| | | | llvm-svn: 124696
* Don't warn about extraneous '()' around a comparison if it occurs within a ↵Ted Kremenek2011-02-012-9/+22
| | | | | | | | | macro. Macros frequently contain extra '()' to make instantiation less error prone. This warning was flagging a ton of times on postgresql because of its use of macros. llvm-svn: 124695
* PR9081: Split up LDM instruction with deprecated use of both LR and PC.Bob Wilson2011-02-011-2/+3
| | | | | | | This is completely untested but pretty straightforward, so hopefully I got it right. llvm-svn: 124694
* Don't warn for "if ((a == b))" if the parens came from a macro. Thanks to ↵Argyrios Kyrtzidis2011-02-012-0/+9
| | | | | | Fariborz for the hint! llvm-svn: 124689
* Take Bill Wendling's suggestion for structuring a couple of asserts.Matt Beaumont-Gay2011-02-011-6/+6
| | | | llvm-svn: 124688
* Update to match changes in lldb interface.Devang Patel2011-02-011-1/+2
| | | | llvm-svn: 124687
* Do the right thing for zero-initializing VLAs that don't have a zeroJohn McCall2011-02-012-6/+61
| | | | | | | bit-pattern. It's not clear that this is actually useful given current language restrictions. llvm-svn: 124685
* Add updated Debian ARM include path.Nick Lewycky2011-02-011-0/+2
| | | | llvm-svn: 124684
* Provide constant strings for certain common code completion strings,Douglas Gregor2011-02-011-22/+90
| | | | | | eliminating the need to copy those strings. llvm-svn: 124683
* Add test case for dead stores checker to not flag dead assignments to 'self' ↵Ted Kremenek2011-02-011-0/+17
| | | | | | within a nested assignment. llvm-svn: 124681
* Fix the message. Thanks to Thomas Clement for noticing.Argyrios Kyrtzidis2011-02-011-1/+1
| | | | llvm-svn: 124680
* Fix imm printing for logical instructions.Anton Korobeynikov2011-02-013-24/+45
| | | | | | Patch by Brian G. Lucas! llvm-svn: 124679
* Document the LLVM GIT mirrorAnton Korobeynikov2011-02-011-0/+20
| | | | llvm-svn: 124677
OpenPOWER on IntegriCloud