| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
but has non-empty data fields, such as array of zero length,
remains zero.
// rdar://8945175
llvm-svn: 124741
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 124736
|
|
|
|
| |
llvm-svn: 124735
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
more test cases
Fixed minor bug in the breakpoint id range translation code.
llvm-svn: 124729
|
|
|
|
| |
llvm-svn: 124727
|
|
|
|
| |
llvm-svn: 124726
|
|
|
|
| |
llvm-svn: 124725
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 124722
|
|
|
|
|
|
|
| |
on, as well as more reliably limiting invalid references to locals from
nested scopes.
llvm-svn: 124721
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 124719
|
|
|
|
|
|
| |
Fixes PR9121!
llvm-svn: 124718
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 124715
|
|
|
|
|
|
| |
are in a macro. This is checked twice.
llvm-svn: 124714
|
|
|
|
|
|
|
| |
reassociation. No testcase, because I wasn't able to create a testcase
which actually demonstrates a problem.
llvm-svn: 124713
|
|
|
|
| |
llvm-svn: 124712
|
|
|
|
|
|
| |
(<rdar://problem/8946573>)
llvm-svn: 124711
|
|
|
|
|
|
|
|
| |
g_thumb_opcodes tables,
which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions.
llvm-svn: 124710
|
|
|
|
|
|
|
|
| |
prefix would be misinterpreted in some cases on 32-bit
x86 platforms. Thanks to Olivier Meurant for identifying
the bug.
llvm-svn: 124709
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
that
it passes when using clang as the compiler to build the inferior.
llvm-svn: 124707
|
|
|
|
| |
llvm-svn: 124706
|
|
|
|
| |
llvm-svn: 124705
|
|
|
|
|
|
| |
speed but saves us about 25% of the memory usage for strings.
llvm-svn: 124704
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 124702
|
|
|
|
| |
llvm-svn: 124701
|
|
|
|
| |
llvm-svn: 124700
|
|
|
|
| |
llvm-svn: 124699
|
|
|
|
|
|
|
| |
the string copying goes through a single place that can have
associated state.
llvm-svn: 124698
|
|
|
|
| |
llvm-svn: 124697
|
|
|
|
| |
llvm-svn: 124696
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This is completely untested but pretty straightforward, so hopefully I
got it right.
llvm-svn: 124694
|
|
|
|
|
|
| |
Fariborz for the hint!
llvm-svn: 124689
|
|
|
|
| |
llvm-svn: 124688
|
|
|
|
| |
llvm-svn: 124687
|
|
|
|
|
|
|
| |
bit-pattern. It's not clear that this is actually useful given current
language restrictions.
llvm-svn: 124685
|
|
|
|
| |
llvm-svn: 124684
|
|
|
|
|
|
| |
eliminating the need to copy those strings.
llvm-svn: 124683
|
|
|
|
|
|
| |
within a nested assignment.
llvm-svn: 124681
|
|
|
|
| |
llvm-svn: 124680
|
|
|
|
|
|
| |
Patch by Brian G. Lucas!
llvm-svn: 124679
|
|
|
|
| |
llvm-svn: 124677
|