summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Enable C++ static analysis support in ccc-analyzer.Ted Kremenek2011-04-121-6/+4
| | | | llvm-svn: 129392
* The Thumb2 RFE instructions need to have their second halfword fully specified.Johnny Chen2011-04-123-6/+14
| | | | | | | | | | In addition, the base register is not rGPR, but GPR with th exception that: if n == 15 then UNPREDICTABLE rdar://problem/9273836 llvm-svn: 129391
* SparseBitVector is SLOW.Jakob Stoklund Olesen2011-04-122-48/+58
| | | | | | | Use a Bitvector instead, we didn't need the smaller memory footprint anyway. This makes the greedy register allocator 10% faster. llvm-svn: 129390
* fix typoNick Kledzik2011-04-121-118/+118
| | | | llvm-svn: 129389
* MCJIT lazy relocation resolution and symbol address re-assignment.Jim Grosbach2011-04-123-99/+241
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add handling for tracking the relocations on symbols and resolving them. Keep track of the relocations even after they are resolved so that if the RuntimeDyld client moves the object, it can update the address and any relocations to that object will be updated. For our trival object file load/run test harness (llvm-rtdyld), this enables relocations between functions located in the same object module. It should be trivially extendable to load multiple objects with mutual references. As a simple example, the following now works (running on x86_64 Darwin 10.6): $ cat t.c int bar() { return 65; } int main() { return bar(); } $ clang t.c -fno-asynchronous-unwind-tables -o t.o -c $ otool -vt t.o t.o: (__TEXT,__text) section _bar: 0000000000000000 pushq %rbp 0000000000000001 movq %rsp,%rbp 0000000000000004 movl $0x00000041,%eax 0000000000000009 popq %rbp 000000000000000a ret 000000000000000b nopl 0x00(%rax,%rax) _main: 0000000000000010 pushq %rbp 0000000000000011 movq %rsp,%rbp 0000000000000014 subq $0x10,%rsp 0000000000000018 movl $0x00000000,0xfc(%rbp) 000000000000001f callq 0x00000024 0000000000000024 addq $0x10,%rsp 0000000000000028 popq %rbp 0000000000000029 ret $ llvm-rtdyld t.o -debug-only=dyld ; echo $? Function sym: '_bar' @ 0 Function sym: '_main' @ 16 Extracting function: _bar from [0, 15] allocated to 0x100153000 Extracting function: _main from [16, 41] allocated to 0x100154000 Relocation at '_main' + 16 from '_bar(Word1: 0x2d000000) Resolving relocation at '_main' + 16 (0x100154010) from '_bar (0x100153000)(pcrel, type: 2, Size: 4). loaded '_main' at: 0x100154000 65 $ llvm-svn: 129388
* Add bad register checks for Thumb2 Ld/St instructions.Johnny Chen2011-04-122-0/+55
| | | | | | rdar://problem/9269047 llvm-svn: 129387
* <rdar://problem/9185449> update version info for armNick Kledzik2011-04-121-0/+141
| | | | llvm-svn: 129386
* Revert 129383. It causes some targets to hit a scheduler assert.Andrew Trick2011-04-124-188/+163
| | | | llvm-svn: 129385
* Print our uint64_t with the more portable (C99 and C++0x) %PRIu64 formatNick Lewycky2011-04-121-1/+3
| | | | | | specifier. llvm-svn: 129384
* PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency.Andrew Trick2011-04-124-163/+188
| | | | | | | | | | | | UnitsSharePred was a source of randomness in the scheduler: node priority depended on the queue data structure. I rewrote the recent VRegCycle heuristics to completely replace the old heuristic without any randomness. To make these heuristic adjustments to node latency work, I also needed to do something a little more reasonable with TokenFactor. I gave it zero latency to its consumers and always schedule it as low as possible. llvm-svn: 129383
* Document how to build a LLVM pass with CMake out of source.Oscar Fuentes2011-04-122-0/+61
| | | | | | Patch by arrowdodger! llvm-svn: 129381
* The counters are unsigned.Nick Lewycky2011-04-121-1/+1
| | | | llvm-svn: 129380
* Create new intervals for isolated blocks during region splitting.Jakob Stoklund Olesen2011-04-123-37/+46
| | | | | | | | | This merges the behavior of splitSingleBlocks into splitAroundRegion, so the RS_Region and RS_Block register stages can be coalesced. That means the leftover intervals after region splitting go directly to spilling instead of a second pass of per-block splitting. llvm-svn: 129379
* Remove LastOffset from the asm parser.Rafael Espindola2011-04-124-21/+21
| | | | llvm-svn: 129378
* The Thumb2 Ld, St, and Preload instructions with the i12 forms should have ↵Johnny Chen2011-04-123-1/+18
| | | | | | | | | | its Inst{23} be specified as '1' (add = TRUE). Also add a utility function for Thumb2. llvm-svn: 129377
* Add SplitKit API to query and select the current interval being worked on.Jakob Stoklund Olesen2011-04-122-2/+17
| | | | | | This makes it possible to target multiple registers in one pass. llvm-svn: 129374
* Fix a bug in RegAllocBase::addMBBLiveIns() where a basic block could ↵Jakob Stoklund Olesen2011-04-121-1/+1
| | | | | | accidentally be skipped. llvm-svn: 129373
* Remove dead typedef.Devang Patel2011-04-121-2/+0
| | | | llvm-svn: 129368
* Refactor CompileUnit into a separate header.Devang Patel2011-04-122-98/+124
| | | | llvm-svn: 129367
* ArrayBoundCheckerV2: don't arbitrarily warn about indexing before the ↵Ted Kremenek2011-04-122-19/+51
| | | | | | 0-index of a symbolic region. In many cases that isn't really the base offset. llvm-svn: 129366
* Print out a debug message when the reglist fails the sanity check for Thumb ↵Johnny Chen2011-04-123-0/+39
| | | | | | Ld/St Multiple. llvm-svn: 129365
* This patch adds modeling of strcmp() to the CString checker. Validates ↵Lenny Maiorani2011-04-122-0/+169
| | | | | | inputs are not NULL and are real C strings, then does the comparison and binds the proper return value. Unit tests included. llvm-svn: 129364
* Fix a regression where the initializer implementsFariborz Jahanian2011-04-123-25/+45
| | | | | | | the initialized's protocol and yet clang warns. objective-c issue, // rdar://9267196 llvm-svn: 129363
* Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola2011-04-126-78/+164
| | | | llvm-svn: 129362
* Implement .cfi_same_value.Rafael Espindola2011-04-126-1/+80
| | | | llvm-svn: 129361
* Added new FIXME noteGarrison Venn2011-04-121-0/+9
| | | | llvm-svn: 129360
* Fix AST serialization of reference-to-reference types. This previously causedRichard Smith2011-04-124-4/+24
| | | | | | | | | a crash when deserializing the AST for this: typedef char (&R); extern R &r; llvm-svn: 129358
* Moved the execution context that was in the Debugger intoGreg Clayton2011-04-1269-1256/+3408
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the CommandInterpreter where it was always being used. Make sure that Modules can track their object file offsets correctly to allow opening of sub object files (like the "__commpage" on darwin). Modified the Platforms to be able to launch processes. The first part of this move is the platform soon will become the entity that launches your program and when it does, it uses a new ProcessLaunchInfo class which encapsulates all process launching settings. This simplifies the internal APIs needed for launching. I want to slowly phase out process launching from the process classes, so for now we can still launch just as we used to, but eventually the platform is the object that should do the launching. Modified the Host::LaunchProcess in the MacOSX Host.mm to correctly be able to launch processes with all of the new eLaunchFlag settings. Modified any code that was manually launching processes to use the Host::LaunchProcess functions. Fixed an issue where lldb_private::Args had implicitly defined copy constructors that could do the wrong thing. This has now been fixed by adding an appropriate copy constructor and assignment operator. Make sure we don't add empty ModuleSP entries to a module list. Fixed the commpage module creation on MacOSX, but we still need to train the MacOSX dynamic loader to not get rid of it when it doesn't have an entry in the all image infos. Abstracted many more calls from in ProcessGDBRemote down into the GDBRemoteCommunicationClient subclass to make the classes cleaner and more efficient. Fixed the default iOS ARM register context to be correct and also added support for targets that don't support the qThreadStopInfo packet by selecting the current thread (only if needed) and then sending a stop reply packet. Debugserver can now start up with a --unix-socket (-u for short) and can then bind to port zero and send the port it bound to to a listening process on the other end. This allows the GDB remote platform to spawn new GDB server instances (debugserver) to allow platform debugging. llvm-svn: 129351
* static analyzer: invalidate by-ref arguments passed to constructors in a ↵Ted Kremenek2011-04-122-3/+47
| | | | | | 'new' expression. llvm-svn: 129349
* Fix bug in SimpleSValBuilder where '--' pointer arithmetic was treated like ↵Ted Kremenek2011-04-122-1/+21
| | | | | | '++' pointer arithmetic. llvm-svn: 129348
* Don't suggest dynamic_cast or typeid as code completion results whenDouglas Gregor2011-04-122-24/+85
| | | | | | | | RTTI is disabled. Similarly, don't suggest throw or try as code completion results when C++ exceptions are disabled. Fixes <rdar://problem/9193560>. llvm-svn: 129346
* Split a store of a VMOVDRR into two integer stores to avoid mixing NEON and ARMCameron Zwarich2011-04-122-3/+23
| | | | | | | stores of arguments in the same cache line. This fixes the second half of <rdar://problem/8674845>. llvm-svn: 129345
* lib/Transforms/Instrumentation/CMakeLists.txt: Add LineProfiling.cpp to fix ↵NAKAMURA Takumi2011-04-121-0/+1
| | | | | | up r129340. llvm-svn: 129343
* Template static data members can have weak_odr linkage, not justJohn McCall2011-04-129-17/+28
| | | | | | | | weak linkage. Also, fix a problem where global weak variables with non-trivial initializers were getting guard variables, or at least were checking for them and then crashing. llvm-svn: 129342
* Whoops.John McCall2011-04-121-1/+1
| | | | llvm-svn: 129341
* Add support for line profiling. Very work-in-progress.Nick Lewycky2011-04-127-1/+263
| | | | | | | | | | Use debug info in the IR to find the directory/file:line:col. Each time that location changes, bump a counter. Unlike the existing profiling system, we don't try to look at argv[], and thusly don't require main() to be present in the IR. This matches GCC's technique where you specify the profiling flag when producing each .o file. The runtime library is minimal, currently just calling printf at program shutdown time. The API is designed to make it possible to emit GCOV data later on. llvm-svn: 129340
* Objective-C++: The global namespace is an associated namespace of anDouglas Gregor2011-04-122-1/+23
| | | | | | Objective-C pointer type. Fixes <rdar://problem/9142559>. llvm-svn: 129339
* Consider ConstantAggregateZero as well as ConstantArray/Struct.Nick Lewycky2011-04-121-5/+7
| | | | llvm-svn: 129338
* Ignore indirect field declarations. Fixes PR9570.John McCall2011-04-122-0/+12
| | | | llvm-svn: 129337
* Formatting.John McCall2011-04-121-11/+8
| | | | llvm-svn: 129336
* This test works now; enable it.John McCall2011-04-121-18/+16
| | | | llvm-svn: 129335
* Fix typo.Eric Christopher2011-04-121-1/+1
| | | | llvm-svn: 129334
* RegionStoreManager::invalidateRegions: treat classes the same as structs.Ted Kremenek2011-04-122-3/+17
| | | | llvm-svn: 129333
* Added a few more commands, but I mainly wanted to include how to run lldbGreg Clayton2011-04-121-3/+86
| | | | | | | with the same program arguments for a process over and over without having to specify them (like you can with gdb with the "--args" option). llvm-svn: 129332
* After some discussion with Doug, we decided that it made a lot more senseJohn McCall2011-04-1219-355/+282
| | | | | | | | | for __unknown_anytype resolution to destructively modify the AST. So that's what it does now, which significantly simplifies some of the implementation. Normal member calls work pretty cleanly now, and I added support for propagating unknown-ness through &. llvm-svn: 129331
* Make IRBuilder support StringRef for building strings.Nick Lewycky2011-04-122-5/+7
| | | | | | Also document that the global variables produced are mergable. llvm-svn: 129330
* Teach GRState::getSValAsScalarOrLoc() about C++ references.Ted Kremenek2011-04-122-1/+11
| | | | llvm-svn: 129329
* Tidy up a bit now that we're using the MemoryManager interface.Jim Grosbach2011-04-123-19/+22
| | | | llvm-svn: 129328
* Add one test case (svc).Johnny Chen2011-04-121-0/+3
| | | | llvm-svn: 129327
* Match case for invalid constant error messages and add a newEric Christopher2011-04-122-6/+9
| | | | | | test for invalid hexadecimals. llvm-svn: 129326
OpenPOWER on IntegriCloud