aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-12-09Switch SROA to pop Uses off the back of its visitors' queues.Chandler Carruth
This will more closely match the behavior of the new PtrUseVisitor that I am adding. Hopefully this will not change the actual behavior in any way, but by making the processing order more similar help in debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169697 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-09Drop the address space limit for tests in the makefile build.Benjamin Kramer
The limit seems to break newer pythons (see PR13598) so just drop it for now. Eventually lit should learn to set limits for its children instead of a global limit in the makefile. If some PPC bots fail after this change: That's a good thing, they actually run clang tests now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169695 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-09Remove extra blank line.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169692 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-09- Re-enable population count loop idiom recognization Shuxin Yang
- fix a bug which cause sigfault. - add two testing cases which was causing crash git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169687 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Teach DAG combine to handle vector logical operations with vectors of all 1s ↵Craig Topper
or all 0s. These cases can show up when vectors are split for legalizing. Fix some tests that were dependent on these cases not being combined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169684 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Revert the patches adding a popcount loop idiom recognition pass.Chandler Carruth
There are still bugs in this pass, as well as other issues that are being worked on, but the bugs are crashers that occur pretty easily in the wild. Test cases have been sent to the original commit's review thread. This reverts the commits: r169671: Fix a logic error. r169604: Move the popcnt tests to an X86 subdirectory. r168931: Initial commit adding the pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169683 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Simplify code. Sort includes. No functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169676 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Fix Windows build breakage.Logan Chien
Windows does not have <stdint.h>, should include "llvm/Support/DataTypes.h" instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169672 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Fix an inadvertent typo error.Shuxin Yang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169671 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Fix a use-after-free bug found by ASan. You can't assign a temporaryChandler Carruth
std::string to a StringRef. Moreover, the method being called accepts a Twine to simplify these patterns. Fixes this ASan failure: ==6312== ERROR: AddressSanitizer: heap-use-after-free on address 0x7fd558b1af58 at pc 0xcb7529 bp 0x7fffff572080 sp 0x7fffff572078 READ of size 1 at 0x7fd558b1af58 thread T0 #0 0xcb7528 .../llvm/include/llvm/ADT/StringRef.h:192 llvm::StringRef::operator[]() #1 0x1d53c0a .../llvm/include/llvm/ADT/StringExtras.h:128 llvm::HashString() #2 0x1d53878 .../llvm/lib/Support/StringMap.cpp:64 llvm::StringMapImpl::LookupBucketFor() #3 0x1b6872f .../llvm/include/llvm/ADT/StringMap.h:352 llvm::StringMap<>::GetOrCreateValue<>() #4 0x1b61836 .../llvm/lib/MC/MCContext.cpp:109 llvm::MCContext::GetOrCreateSymbol() #5 0xe9fd47 .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:154 (anonymous namespace)::ARMELFStreamer::EmitMappingSymbol() #6 0xea01dd .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:133 (anonymous namespace)::ARMELFStreamer::EmitDataMappingSymbol() #7 0xe9f78b .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:91 (anonymous namespace)::ARMELFStreamer::EmitBytes() #8 0x1b15d82 .../llvm/lib/MC/MCStreamer.cpp:89 llvm::MCStreamer::EmitIntValue() #9 0xcc0f9b .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:713 llvm::ARMAsmPrinter::emitAttributes() #10 0xcc0d44 .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:632 llvm::ARMAsmPrinter::EmitStartOfAsmFile() #11 0x14692ad .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:162 llvm::AsmPrinter::doInitialization() #12 0x1bc4677 .../llvm/lib/VMCore/PassManager.cpp:1561 llvm::FPPassManager::doInitialization() #13 0x1bc4990 .../llvm/lib/VMCore/PassManager.cpp:1595 llvm::MPPassManager::runOnModule() #14 0x1bc55e5 .../llvm/lib/VMCore/PassManager.cpp:1705 llvm::PassManagerImpl::run() #15 0x1bc5878 .../llvm/lib/VMCore/PassManager.cpp:1740 llvm::PassManager::run() #16 0xc3954d .../llvm/tools/llc/llc.cpp:378 compileModule() #17 0xc38001 .../llvm/tools/llc/llc.cpp:194 main #18 0x7fd557d6a11c __libc_start_main 0x7fd558b1af58 is located 24 bytes inside of 29-byte region [0x7fd558b1af40,0x7fd558b1af5d) freed by thread T0 here: #0 0xc337da .../llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:56 operator delete() #1 0x1ee9cef .../libstdc++-v3/include/bits/basic_string.h:535 std::string::~string() #2 0xea01dd .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:133 (anonymous namespace)::ARMELFStreamer::EmitDataMappingSymbol() #3 0xe9f78b .../llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:91 (anonymous namespace)::ARMELFStreamer::EmitBytes() #4 0x1b15d82 .../llvm/lib/MC/MCStreamer.cpp:89 llvm::MCStreamer::EmitIntValue() #5 0xcc0f9b .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:713 llvm::ARMAsmPrinter::emitAttributes() #6 0xcc0d44 .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp:632 llvm::ARMAsmPrinter::EmitStartOfAsmFile() #7 0x14692ad .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:162 llvm::AsmPrinter::doInitialization() #8 0x1bc4677 .../llvm/lib/VMCore/PassManager.cpp:1561 llvm::FPPassManager::doInitialization() #9 0x1bc4990 .../llvm/lib/VMCore/PassManager.cpp:1595 llvm::MPPassManager::runOnModule() #10 0x1bc55e5 .../llvm/lib/VMCore/PassManager.cpp:1705 llvm::PassManagerImpl::run() #11 0x1bc5878 .../llvm/lib/VMCore/PassManager.cpp:1740 llvm::PassManager::run() #12 0xc3954d .../llvm/tools/llc/llc.cpp:378 compileModule() #13 0xc38001 .../llvm/tools/llc/llc.cpp:194 main #14 0x7fd557d6a11c __libc_start_main git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169668 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-08Add the `lto_codegen_set_export_dynamic' function.Bill Wendling
This function sets the `_exportDynamic' ivar. When that's set, we export all symbols (e.g. we don't run the internalize pass). This is equivalent to the `--export-dynamic' linker flag in GNU land: --export-dynamic When creating a dynamically linked executable, add all symbols to the dynamic symbol table. The dynamic symbol table is the set of symbols which are visible from dynamic objects at run time. If you do not use this option, the dynamic symbol table will normally contain only those symbols which are referenced by some dynamic object mentioned in the link. If you use dlopen to load a dynamic object which needs to refer back to the symbols defined by the program, rather than some other dynamic object, then you will probably need to use this option when linking the program itself. The Darwin linker will support this via the `-export_dynamic' flag. We should modify clang to support this via the `-rdynamic' flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169656 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add C API for specifying CPU to the disassembler.Jim Grosbach
It was a nasty oversight that we didn't include this when we added this API in the first place. Blech. rdar://12839439 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07s/AttrListPtr/AttributeSet/g to better label what this class is going to be ↵Bill Wendling
in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169651 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Make the contents of encoded sections SmallVector<char, N> instead ofEli Bendersky
SmallString. This makes it possible to use the length-erased SmallVectorImpl in the interface without imposing buffer size. Thus, the size of MCInstFragment is back down since a preallocated 8-byte contents buffer is enough. It would be generally a good idea to rid all the fragments of SmallString as contents, because a vector just makes more sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169644 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07When we use the BLEND instruction that uses the MSB as a mask, we can removeNadav Rotem
the VSRI instruction before it since it does not affect the MSB. Thanks Craig Topper for suggesting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169638 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Remove trailing whitespaceMichael Ilseman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169637 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07In hexagon convertToHardwareLoop, don't deref end() iteratorMatthew Curtis
In particular, check if MachineBasicBlock::iterator is end() before using it to call getDebugLoc(); See also this thread on llvm-commits: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121112/155914.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169634 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Mark ImmutableMap::remove/add() const.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169629 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Fixed some grammar and punctuation error.John Criswell
No content changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169627 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Refactor MCInstFragment and MCDataFragment to adhere to a common interface,Eli Bendersky
which removes code duplication and prepares the ground for future additions. Full discussion: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121203/158233.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169626 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07X86: Prefer using VPSHUFD over VPERMIL because it has better throughput.Nadav Rotem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169624 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add separate statistics for Data and Inst fragments emitted during relaxation.Eli Bendersky
Also fixes a test that was overly-sensitive to the exact order of statistics emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169619 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Some common functionality from WinCOFFStreamer::EmitAssignment can be nowEli Bendersky
delegated to MCObjectStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169617 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Lift EmitAssignment into MCObjectStreamer which gets rid of at least threeEli Bendersky
duplicate implementations in format-specific streamers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169613 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Added Mapping Symbols for ARM ELFTim Northover
Before this patch, when you objdump an LLVM-compiled file, objdump tried to decode data-in-code sections as if they were code. This patch adds the missing Mapping Symbols, as defined by "ELF for the ARM Architecture" (ARM IHI 0044D). Patch based on work by Greg Fitzgerald. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169609 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Convert HowToReleaseLLVM.html to reSTDmitri Gribenko
Patch by Alexander Zinenko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169608 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07The test unconditionally assumes a particular cpu has a backend build in the ↵David Tweed
target. Buildbots for some hosts may choose to build only their own backend in order to maximise testing-turnaround time. Move the test into a prefixed directory so lit's standard "backend specific" suppression can be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169604 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Split MCELFStreamer into a header file.Logan Chien
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169603 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07docs: Convert LangRef to reST.Sean Silva
NOTE: If you have any patches in the works that modify LangRef, you will need to rewrite the changes to LangRef.html to their equivalents in LangRef.rst. If you need assistance feel free to contact me. Since LangRef is mission-critical for the project and "normative", I have taken extra care to ensure that no content was lost or altered in the conversion. The content was converted with a tool called `pandoc`, so there is no chance for a human error like accidentally forgetting a sentence or whatever. After the initial conversion by `pandoc`, only changes to the markup were done. This is just the most literal conversion of the HTML document as possible. It might be worth exploring some way to chop up this massive document into separate pages, e.g. something like `docs/LangRef/Instructions.rst`, `docs/LangRef/Intrinsics.rst`, etc. with `docs/LangRef.rst` being an "intro/navigation page" of sorts. On the other hand, that loses the ability to {Ctrl,Cmd}-F for a given term right from your browser. IMO, I think our stylesheet needs some work because I find it hard to tell what level of nesting some of the headings are at (e.g. "is this a new section or is it a subsection?"). The issue is present on other pages, but the sheer size and deep section structure of LangRef really brings this issue out. If there are any web designers out there in the community it would be awesome if you tried to come up with something nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169596 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07[msan] Remove readonly/readnone attributes from all called functions.Evgeniy Stepanov
MSan uses a TLS slot to pass shadow for function arguments and return values. This makes all instrumented functions not readonly, and at the same time requires that all callees of an instrumented function that may be MSan-instrumented do not have readonly attribute (otherwise some of the instrumentation may be optimized out). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169591 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Use the new MIBundleBuilder class in the Mips target.Jakob Stoklund Olesen
This is the preferred way of creating bundled machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169585 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add an MIBundleBuilder class.Jakob Stoklund Olesen
Like the MachineInstrBuilder, this class makes it easier to build bundles of MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169584 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add higher-level API for dealing with bundled MachineInstrs.Jakob Stoklund Olesen
This is still a work in progress. The purpose is to make bundling and unbundling operations explicit, and to catch errors where bundles are broken or created inadvertently. The old IsInsideBundle flag is replaced by two MI flags: BundledPred which has the same meaning as IsInsideBundle, and BundledSucc which is set on instructions that are bundled with a successor. Having two flags provdes redundancy to detect when a bundle is inadvertently torn by a splice() or insert(), and it makes it possible to write bundle iterators that don't need to peek at adjacent instructions. The new flags can't be manipulated directly (once setIsInsideBundle is gone). Instead there are MI functions to make and break bundle bonds. The setIsInsideBundle function will be removed in a future commit. It should be replaced by bundleWithPred(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169583 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07[mips] Delete nodes and instructions for dynamic alloca that are no longer inAkira Hatanaka
use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169580 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07[mips] Shorten predicate name.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169579 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07[mips] Delete unused sub-target features.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169578 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07[mips] Remove unnecessary predicates.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169577 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add support to ValueTracking for determining that a pointer is non-nullChandler Carruth
by virtue of inbounds GEPs that preclude a null pointer. This is a very common pattern in the code generated by std::vector and other standard library routines which use allocators that test for null pervasively. This is one step closer to teaching Clang+LLVM to be able to produce an empty function for: void f() { std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); } Which is related to getting them to completely fold SmallVector push_back sequences into constants when inlining and other optimizations make that a possibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169573 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add manualRetain() and manualRelease() to ImmutableMapRef, and add a new ↵Ted Kremenek
constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169572 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Makefile.common: Update a description, s/Source/SOURCES/ , according to ↵NAKAMURA Takumi
MakefileGuide.html#control-variables . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169569 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07unittest/googletest/Makefile: Unbreak out-of-tree build.NAKAMURA Takumi
- Use SOURCES instead of Source. See Makefile.rules and MakefileGuide.html. - Don't assume the current directory. $(wildcard *.cc) doesn't match anything on corresponding build directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169568 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07Add convenience accessor to Triple for OS == NaClEli Bendersky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169565 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Try to unbreak makefile build by excluding gtest-all.cc sourceAlexey Samsonov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169564 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Add a 'using' declaration to suppress GCC's -Woverloaded-virtual while weMatt Beaumont-Gay
decide what pattern we want to follow in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169561 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Modify the LLVM checkout of googletest:Alexey Samsonov
1) don't delete gtest-all.cc (which is used to gather all gtest source files in a single file) 2) make including LLVMSupport headers optional (on by default). Sanitizer tools may want to use their own versions of googletest compiled with specific flags, instead of the common googletest library used for all other LLVM/Clang unittests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169559 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06fixed valgrind issues of prior commit, this change applies r169456 changes ↵Pedro Artigas
back to the tree with fixes. on darwin no valgrind issues exist in the tests that used to fail. original change description: change MCContext to work on the doInitialization/doFinalization model reviewed by Evan Cheng <evan.cheng@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169553 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Remove unused field.Jakub Staszak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169551 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Remove trailing spaces.Jakub Staszak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169550 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Fix typos in CHECK lines.Dmitri Gribenko
Patch by Alexander Zinenko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169547 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06Documentation: fix typos and formatting.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169546 91177308-0d34-0410-b5e6-96231b3b80d8