- May 14, 2012
-
-
Chad Rosier authored
so that it can be reused in MemCpyOptimizer. This analysis is needed to remove an unnecessary memcpy when returning a struct into a local variable. rdar://11341081 PR12686 llvm-svn: 156776
-
Brendon Cahoon authored
llvm-svn: 156775
-
Dan Gohman authored
llvm-svn: 156774
-
Johnny Chen authored
Fix missing NEON registers for the 'register read' command with the lldb debugserver which supports the 'qRegisterInfo' packet that dynamically discovers remote register context information. o GDBRemoteRegisterContext.h: Change the prototype of HardcodeARMRegisters() to take a boolean flag, which now becomes void HardcodeARMRegisters(bool from_scratch); o GDBRemoteRegisterContext.cpp: HardcodeARMRegisters() now checks the from_scratch flag and decides whether to add composite registers to the already existing primordial registers based on a table called g_composites which describes the composite registers. o ProcessGDBRemote.cpp: Modify the logic of ProcessGDBRemote::BuildDynamicRegisterInfo() to call m_register_info.HardcodeARMRegisters() with the newly introduced 'bool from_scrach' flag. rdar://problem/10652076 llvm-svn: 156773
-
Akira Hatanaka authored
llvm-svn: 156772
-
Chandler Carruth authored
Patch from Andrew C. Morrow. llvm-svn: 156771
-
Andrew Trick authored
llvm-svn: 156770
-
Jordy Rose authored
We check the address of the last element accessed, but with 0 calculating that address results in element -1. This patch bails out early (and avoids a bunch of other work at that). Fixes PR12807. llvm-svn: 156769
-
Jakob Stoklund Olesen authored
Returning a temporary BitVector is very expensive. If you must, create the temporary explicitly: Use BitVector(A).flip() instead of ~A. llvm-svn: 156768
-
Jakob Stoklund Olesen authored
These operators were crazy slow, calling malloc to return a temporary result. At the same time, they look very innocent when used in code. If you need temporary BitVectors to compute your thing, create them explicitly, and use the inplace logical operators. This makes the high cost explicit in the code. llvm-svn: 156767
-
Dmitry Vyukov authored
llvm-svn: 156766
-
Dmitry Vyukov authored
llvm-svn: 156765
-
Dmitry Vyukov authored
llvm-svn: 156764
-
Jakob Stoklund Olesen authored
Register units can be used to compute if two registers overlap: A overlaps B iff units(A) intersects units(B). With this change, the above holds true even on targets that use ad hoc aliasing (currently only ARM). This means that register units can be used to implement regsOverlap() more efficiently, and the register allocator can use the concept to model interference. When there is no ad hoc aliasing, the register units correspond to the maximal cliques in the register overlap graph. This is optimal, no other register unit assignment can have fewer units. With ad hoc aliasing, weird things are possible, and we don't try too hard to compute the maximal cliques. The current approach is always correct, and it works very well (probably optimally) as long as the ad hoc aliasing doesn't have cliques larger than pairs. It seems unlikely that any target would need more. llvm-svn: 156763
-
Jakob Stoklund Olesen authored
The ad hoc aliasing specified in the 'Aliases' list in .td files is currently only used by computeOverlaps(). It will soon be needed to build accurate register units as well, so build the undirected graph in CodeGenRegister::buildObjectGraph() instead. Aliasing is a symmetric relationship with only one direction specified in the .td files. Make sure both directions are represented in getExplicitAliases(). llvm-svn: 156762
-
Jakob Stoklund Olesen authored
TableGen creates new register classes and sub-register indices based on the sub-register structure present in the register bank. So far, it has been doing that on a per-register basis, but that is not very efficient. This patch teaches TableGen to compute topological signatures for registers, and use that to reduce the amount of redundant computation. Registers get the same TopoSig if they have identical sub-register structure. TopoSigs are not currently exposed outside TableGen. llvm-svn: 156761
-
Jakob Stoklund Olesen authored
The existing operation (A & B).any() is very slow. llvm-svn: 156760
-
Dmitry Vyukov authored
Collect info about all dynamic libraries in the process (name, base, size). Determine to what dyn lib the address relates, route request to addr2line instance for the lib. llvm-svn: 156759
-
Dmitry Vyukov authored
Races on stack of main thread are problematic for COMPAT mapping, because it's not 1-to-1 and race addr is not properly mapped from shadow back to application memory. Update output tests to race heap memory. llvm-svn: 156758
-
Stepan Dyatkovskiy authored
llvm-svn: 156757
-
Bill Wendling authored
llvm-svn: 156756
-
Bill Wendling authored
llvm-svn: 156755
-
Bill Wendling authored
llvm-svn: 156754
-
Gregory Szorc authored
llvm-svn: 156753
-
Gregory Szorc authored
llvm-svn: 156752
-
- May 13, 2012
-
-
Jordy Rose authored
llvm-svn: 156746
-
Justin Holewinski authored
llvm-svn: 156745
-
Benjamin Kramer authored
Found by valgrind. llvm-svn: 156744
-
Jean-Daniel Dupas authored
llvm-svn: 156743
-
Jean-Daniel Dupas authored
llvm-svn: 156742
-
Dmitry Vyukov authored
This is mostly to test my commit access. Fixes fd passed to mmap(), -1 is the proper invalid fd. llvm-svn: 156741
-
Benjamin Kramer authored
ReleaseNotes: Add a note about zero_undef on llvm.cttz/ctlz. Extend x86 section. Add a bullet for dwarf access tables. llvm-svn: 156740
-
Benjamin Kramer authored
ReleaseNotes: Add a blurb about llvm-mc -g and move inliner changes into the optimizer sections. Verbosify some bullets. llvm-svn: 156739
-
Benjamin Kramer authored
^~~~ llvm-build llvm-svn: 156738
-
Benjamin Kramer authored
llvm-svn: 156737
-
Benjamin Kramer authored
llvm-svn: 156736
-
Benjamin Kramer authored
llvm-svn: 156735
-
Bill Wendling authored
llvm-svn: 156733
-
Bill Wendling authored
llvm-svn: 156732
-
Bill Wendling authored
llvm-svn: 156731
-