aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-11-29Make compilation unit number change local to NaClDavid Sehr
Debug compilation unit numbers were different from upstream because NaCl observed an issue with the same object file being compiled twice, creating duplicate symbol names. To handle this, NaCl disambiguates symbols by more than just the path to the compilation unit. Make this properly conditional on NaCl, and hope we can upstream a fix someday to remove the need. BUG= http://code.google.com/p/nativeclient/issues/detail?id=1711 Review URL: https://codereview.chromium.org/11308216
2012-11-29Object: Pass the buffer name through when making a copy.Benjamin Kramer
Should bring the buildbots back to life. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168935 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Add cortex-a5 subtarget to the supported ARM architecturesQuentin Colombet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168933 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Cleanup recent addition of DAGTypeLegalizer::SplitVecOp_VSELECTJustin Holewinski
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168932 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29rdar://12100355 (part 1)Shuxin Yang
This revision attempts to recognize following population-count pattern: while(a) { c++; ... ; a &= a - 1; ... }, where <c> and <a>could be used multiple times in the loop body. TODO: On X8664 and ARM, __buildin_ctpop() are not expanded to a efficent instruction sequence, which need to be improved in the following commits. Reviewed by Nadav, really appreciate! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168931 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Handle the situation where CodeGenPrepare removes a reference to a BB that hasBill Wendling
the last invoke instruction in the function. This also removes the last landing pad in an function. This is fine, but with SjLj EH code, we've already placed a bunch of code in the 'entry' block, which expects the landing pad to stick around. When we get to the situation where CGP has removed the last landing pad, go ahead and nuke the SjLj instructions from the 'entry' block. <rdar://problem/12721258> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168930 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Use multiclass for 'transfer' instructions.Jyotsna Verma
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168929 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29No need to run LICM after loop vectorization because we dont generate ↵Nadav Rotem
invariant code any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168928 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29When broadcasting invariant scalars into vectors, place the broadcast code ↵Nadav Rotem
in the preheader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168927 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29instcombine: Migrate puts optimizationsMeador Inge
This patch migrates the puts optimizations from the simplify-libcalls pass into the instcombine library call simplifier. All the simplifiers from simplify-libcalls have now been migrated to instcombine. Yay! Just a few other bits to migrate (prototype attribute inference and a few statistics) and simplify-libcalls can finally be put to rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168925 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Fix a memory leak in MachOObjectFile.Jim Grosbach
MachOObjectFile owns a MachOObj, but never frees it. Both MachOObjectFile and MachOObj want to own the MemoryBuffer, though, so we have to be careful and give them each one of their own. Thanks to Greg Clayton, Eric Christopher and Michael Spencer for helping figure out what's going wrong here. rdar://12561773 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168923 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Conditionalize MIPS register reservationDavid Sehr
The MIPS code generator reserves three extra registers for sandbox use. Make sure these are only reserved if NaCl is being targeted. BUG= http://code.google.com/p/nativeclient/issues/detail?id=1711 Review URL: https://codereview.chromium.org/11308232
2012-11-29Follow up to 168711: It's safe to base this analysis on the found compare, ↵Benjamin Kramer
just return the value for the right predicate. Thanks to Andy for catching this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168921 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Improve isImpliedCond comment a bit.Andrew Trick
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168914 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[ASan] Simplify check added in r168861. Bail out from module pass early if ↵Alexey Samsonov
the module is blacklisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168913 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Apply Takumi's patch to suppress unused-variable warnings in -Asserts builds.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168911 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Add options to AddressSanitizer passes to make them configurable by frontend.Alexey Samsonov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168910 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Disable register-register preloads for NaCl.JF Bastien
This disables, prefetches using the base reg + index reg ("[rb, ri]") style addressing mode. We do not allow this addressing mode for other memory instructions either and just to make sure we would also like to sandbox this instruction which is only possible for the base + immediate offset addressing mode. R=dschuff@chromium.org BUG=https://code.google.com/p/nativeclient/issues/detail?id=3117 TEST=nacl_compiler_test/gcc-4.6.1/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c TEST=nacl_compiler_test/gcc-4.6.1/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c TEST=nacl_compiler_test/gcc-4.6.1/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c TEST=nacl_compiler_test/gcc-4.6.1/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c TEST=nacl_compiler_test/gcc-4.6.1/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c TEST=test/CodeGen/ARM/prefetch.ll Review URL: https://codereview.chromium.org/11416141
2012-11-29One more step towards making doInitialization and doFinalization useful forPedro Artigas
start up and clean up module passes, now that ASAN and TSAN are fixed the tests pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168905 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Fix LibCall simplification and ARM EHDerek Schuff
Prevent the libcall simplifier from modifying the implementation of libcalls (causes problems when newlib is included in LTO) Use the generic DWARF rather than ARM EH ABI for nacl
2012-11-29Merge remote-tracking branch 'origin/master' into merge168633Derek Schuff
2012-11-29Removing unused code for computing CPSR liveness for sandboxing.Eli Bendersky
BUG= http://code.google.com/p/nativeclient/issues/detail?id=3160 Review URL: https://codereview.chromium.org/11421129
2012-11-29instcombine: Migrate fputs optimizationsMeador Inge
This patch migrates the fputs optimizations from the simplify-libcalls pass into the instcombine library call simplifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168893 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29instcombine: Migrate fwrite optimizationsMeador Inge
This patch migrates the fwrite optimizations from the simplify-libcalls pass into the instcombine library call simplifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168892 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29instcombine: Migrate fprintf optimizationsMeador Inge
This patch migrates the fprintf optimizations from the simplify-libcalls pass into the instcombine library call simplifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168891 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Handle vector manipulation instructions.Evgeniy Stepanov
Handle insertelement, extractelement, shufflevector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168889 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Fix getOriginForNaryOp.Evgeniy Stepanov
The old version failed on a 3-arg instruction with (-1, 0, 0) shadows (it would pick the 3rd operand origin irrespective of its shadow). The new version always picks the origin of the rightmost poisoned operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168887 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Added atomic 64 min/max/umin/umax instrinsics support in the ARM backend.Silviu Baranga
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168886 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29misched: Recompute priority queue when DFSResults are updated.Benjamin Kramer
This was found by MSVC10's STL debug mode on a test from the test suite. Sadly std::is_heap isn't standard so there is no way to assert this without writing our own heap verify, which looks like overkill to me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168885 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Basic handling of inline asm.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168884 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Teach the legalizer how to handle operands for VSELECT nodesJustin Holewinski
If we need to split the operand of a VSELECT, it must be the mask operand. We split the entire VSELECT operand with EXTRACT_SUBVECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168883 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Allow targets to prefer TypeSplitVector over TypePromoteInteger when ↵Justin Holewinski
computing the legalization method for vectors For some targets, it is desirable to prefer scalarizing <N x i1> instead of promoting to a larger legal type, such as <N x i32>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168882 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Propagate shadow through (x<0) and (x>=0) comparisons.Evgeniy Stepanov
This is a special case of signed relational comparison where result only depends on the sign of x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168881 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Fix shadow & origin store & load alignment.Evgeniy Stepanov
This change ensures that shadow memory accesses have the same alignment as corresponding app memory accesses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168880 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Optimize getOriginPtr.Evgeniy Stepanov
Rewrite getOriginPtr in a way that lets subsequent optimizations factor out the common part of Shadow and Origin address calculation. Improves perf by up to 5%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168879 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Fix a few compilation warnings.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168878 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Transform memcpy and memset to library calls.Evgeniy Stepanov
This was already done for memmove, where it is required for correctness. This change improves performance by avoiding copyingthe same memory twice. Also, the library functions are given __msan_ prefix to prevent instcombine pass from converting them back to intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168876 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29I changed hasAVX() to hasFp256() and hasAVX2() to hasInt256() in ↵Elena Demikhovsky
X86IselLowering.cpp. The logic was not changed, only names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168875 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[msan] Make sure that report callbacks do not get merged.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168873 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Initial commit of MemorySanitizer.Evgeniy Stepanov
Compiler pass only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168866 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[asan/tsan] initialize the asan/tsan callbacks in runOnFunction as opposed ↵Kostya Serebryany
to doInitialization. This is required to allow the upcoming changes in PassManager behavior git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168864 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29[asan] when checking the noreturn attribute on the call, also check it on ↵Kostya Serebryany
the callee git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168861 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Cleaned up a couple of comments.Preston Briggs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168854 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Use MCPhysReg for RegisterClassInfo allocation orders.Jakob Stoklund Olesen
This saves a bit of memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168852 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Instruction::isAssociative() returns true for fmul/fadd if they are tagged ↵Shuxin Yang
"unsafe" mode. Approved by: Eli and Michael. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168848 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Avoid rewriting instructions twice.Jakob Stoklund Olesen
This could cause miscompilations in targets where sub-register composition is not always idempotent (ARM). <rdar://problem/12758887> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168837 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Issue a fatal error if the line doesn't have a regular expression.Nick Lewycky
Also a couple not-user-visible changes; using empty() instead of size(), and make inSection() not insert NULL Regex*'s into StringMap when doing a lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168833 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29When combining consecutive stores allow loads in between the stores, if the ↵Nadav Rotem
loads do not alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168832 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-28When we delete a dead basic block, see if any of its successors are dead andBill Wendling
delete those as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168829 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-28Define signed const-ext immediate operands and their predicates.Jyotsna Verma
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168810 91177308-0d34-0410-b5e6-96231b3b80d8