- Nov 23, 2013
-
-
Chandler Carruth authored
one function's analyses are invalidated at a time. Also switch the preservation of the proxy to *fully* preserve the lower (function) analyses. Combined, this gets both upward and downward analysis invalidation to a point I'm happy with: - A function pass invalidates its function analyses, and its parent's module analyses. - A module pass invalidates all of its functions' analyses including the set of which functions are in the module. - A function pass can preserve a module analysis pass. - If all function passes preserve a module analysis pass, that preservation persists. If any doesn't the module analysis is invalidated. - A module pass can opt into managing *all* function analysis invalidation itself or *none*. - The conservative default is none, and the proxy takes the maximally conservative approach that works even if the set of functions has changed. - If a module pass opts into managing function analysis invalidation it has to propagate the invalidation itself, the proxy just does nothing. The only thing really missing is a way to query for a cached analysis or nothing at all. With this, function passes can more safely request a cached module analysis pass without fear of it accidentally running part way through. llvm-svn: 195519
-
Chandler Carruth authored
now the access to the manager is via the proxy that ensures it behaves correctly. llvm-svn: 195518
-
rdar://problem/15540233Greg Clayton authored
SBPlatform.h was missing from built LLDB.framework, now it is fixed. llvm-svn: 195517
-
Shankar Easwaran authored
Hidden nodes could be a result of expansion, where a flavor might decide to keep the node that we want to expand but discard it from being processed by the resolver. Verifies with unittests. llvm-svn: 195516
-
Shankar Easwaran authored
Flavors may like to expand InputGraph nodes, when a filenode after parsing results in more elements. One such example is while parsing GNU linker scripts. The linker scripts after parsing would result in a lot of filenodes and probably controlnodes too. Adds unittests to verify functionality. llvm-svn: 195515
-
Tom Stellard authored
We were ignoring the ordered/onordered bits and also the signed/unsigned bits of condition codes when lowering the DAG to MachineInstrs. NOTE: This is a candidate for the 3.4 branch. llvm-svn: 195514
-
Yuchen Wu authored
gcov expects every function to contain an entry block that unconditionally branches into the next block. clang does not implement basic blocks in this manner, so gcov did not output correct branch info if the entry block branched to multiple blocks. This change splits every function's entry block into an empty block and a block with the rest of the instructions. The instrumentation code will take care of the rest. llvm-svn: 195513
-
Samuel Benzaquen authored
Summary: Make the negative test more specific. Otherwise it can accidentally match injected code. Reviewers: aaron.ballman CC: klimek, cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D2257 llvm-svn: 195512
-
- Nov 22, 2013
-
-
Rui Ueyama authored
This is the first step towards DLL creation support. Resource-only DLLs don't have entry point address. llvm-svn: 195510
-
Aaron Ballman authored
Updating Subjects definitions for attributes based on semantic handling. Removes Subjects for things we cannot currently check, adds Subjects for things we can, and rectifies most discrepancies. Since Subjects are not currently handled in tablegen, there are no functional changes with this patch. llvm-svn: 195508
-
Tobias Grosser authored
This will now also enable the automatic formatting checks in the Polly buildbot. llvm-svn: 195507
-
Manman Ren authored
We can share the implementation between StripSymbols and dropping debug info for metadata versions that do not match. Also update the comments to match the implementation. A follow-on patch will drop the "Debug Info Version" module flag in StripDebugInfo. llvm-svn: 195505
-
Manman Ren authored
We are going to drop debug info without a version number or with a different version number, to make sure we don't crash when we see bitcode files with different debug info metadata format. llvm-svn: 195504
-
Aaron Ballman authored
llvm-svn: 195503
-
Yaron Keren authored
type_info* will work for typeids from the same compiled file but fail for typeids from a DLL and an executable. Among other things, exceptions are not caught by handlers since can_catch() returns false. Defining _LIBCXX_DYNAMIC_FALLBACK does not help since can_catch() calls is_equal() with use_strcmp=false so the string names are not compared. This patch compares typeids first (cheap) and only they are different calls strcmp. llvm-svn: 195502
-
Joerg Sonnenberger authored
available always-inline functions. This breaks libc++'s locale implementation. Code generation for this case should be fixed, but this is a stop gap fix for clang 3.4. llvm-svn: 195501
-
-
Greg Clayton authored
Patch from Todd Fiala: lldb will seg fault if for some reason there is no unwinder when StackFrameList::GetFramesUpTo() is called. Mainly patched to stop LLDB from crashing. This can easily happen if you debug to a remote gdbserver that doesn't have any dynamic register info and you don't have a target definition file specified. llvm-svn: 195499
-
Jim Grosbach authored
Utilizing the 8 and 16 bit comparison instructions, even when an input can be folded into the comparison instruction itself, is typically not worth it. There are too many partial register stalls as a result, leading to significant slowdowns. By always performing comparisons on at least 32-bit registers, performance of the calculation chain leading to the comparison improves. Continue to use the smaller comparisons when minimizing size, as that allows better folding of loads into the comparison instructions. rdar://15386341 llvm-svn: 195496
-
Manman Ren authored
info version number. Will error out when modules have different version numbers. llvm-svn: 195495
-
Manman Ren authored
This will be used to output the debug info version number as a module flag. llvm-svn: 195494
-
Matt Arsenault authored
If the beginning of the loop was also the entry block of the function, branches were inserted to the entry block which isn't allowed. If this occurs, create a new dummy function entry block that branches to the start of the loop. llvm-svn: 195493
-
Matt Arsenault authored
llvm-svn: 195492
-
Paul Robinson authored
Improvements over r195317: - Set/restore EnableFastISel flag instead of just running FastISel within SelectAllBasicBlocks; the flag is checked in various places, and FastISel won't run properly if those places don't do the right thing. - Test looks for normal ISel versus FastISel behavior, and not something more subtle that doesn't work everywhere. Based on work by Andrea Di Biagio. llvm-svn: 195491
-
Andrew Trick authored
llvm-svn: 195490
-
Andrew Trick authored
Minor cleanup. EvictionCost ctor was confusing relative to the other costs floating around in the code. llvm-svn: 195489
-
Andrew Trick authored
patchpoint: factor SD builder code for live vars. Plain stackmap also optimizes Constant values now. llvm-svn: 195488
-
Andrew Trick authored
llvm-svn: 195487
-
Greg Clayton authored
Added a new "--port-offset PORT" option to lldb-platform so it can be used with USB mux type scenarios. llvm-svn: 195486
-
Greg Clayton authored
Fixed a bunch of issues with many functions that were added for the platform host IO calls where they might not reply to the packet if the packet was malformed. Cleaned up error codes. Added a port offset to allow for connections across a USB mux. llvm-svn: 195485
-
Greg Clayton authored
Fix ePathTypeSupportExecutableDir for shallow bundle Darwin targets and add "host" logging for the different paths. llvm-svn: 195484
-
Greg Clayton authored
llvm-svn: 195483
-
Greg Clayton authored
llvm-svn: 195482
-
Greg Clayton authored
llvm-svn: 195481
-
Fariborz Jahanian authored
tranalation @protocol expression. // rdar://15517895 llvm-svn: 195480
-
Hans Wennborg authored
I changed the registry key in that commit, but forgot to update the integration files. This change makes them use the same variable. llvm-svn: 195479
-
Rafael Espindola authored
The fix is simply to use CurI instead of I when handling aliases to avoid accessing a invalid iterator. original message: Convert linkonce* to weak* instead of strong. Also refactor the logic into a helper function. This is an important improve on mingw where the linker complains about mixed weak and strong symbols. Converting to weak ensures that the symbol is not dropped, but keeps in a comdat, making the linker happy. llvm-svn: 195477
-
Michael Liao authored
- When simplifying the mask generation for BLEND, check whether that mask is also consumed by other non-BLEND insns. If true, skip that simplification. llvm-svn: 195476
-
Richard Sandiford authored
I've no idea why I decided to handle TMxx differently from all the other high/low logic operations, but it was a stupid thing to do. The high registers aren't available as separate 32-bit registers on z10, so subreg_h32 can't be used on a GR64 there. I've normally been testing with z196 and with -O3 and so hadn't noticed this until now. llvm-svn: 195473
-
Rafael Espindola authored
This reverts commit r195470. Debugging failure in some bots. llvm-svn: 195472
-