summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use the target options specified on a function to reset the back-end.Bill Wendling2013-04-056-43/+112
| | | | | | | | During LTO, the target options on functions within the same Module may change. This would necessitate resetting some of the back-end. Do this for X86, because it's a Friday afternoon. llvm-svn: 178917
* Revert r178845 - Fix bug in PEI's virtual-register scavengingHal Finkel2013-04-053-84/+24
| | | | | | | | | | | | | | | | | | | | | | Reverting because this breaks one of the LTO builders. Original commit message: This change fixes a bug that I introduced in r178058. After a register is scavenged using one of the available spills slots the instruction defining the virtual register needs to be moved to after the spill code. The scavenger has already processed the defining instruction so that registers killed by that instruction are available for definition in that same instruction. Unfortunately, after this, the scavenger needs to iterate through the spill code and then visit, again, the instruction that defines the now-scavenged register. In order to avoid confusion, the register scavenger needs the ability to 'back up' through the spill code so that it can again process the instructions in the appropriate order. Prior to this fix, once the scavenger reached the just-moved instruction, it would assert if it killed any registers because, having already processed the instruction, it believed they were undefined. Unfortunately, I don't yet have a small test case. Thanks to Pranav Bhandarkar for diagnosing the problem and testing this fix. llvm-svn: 178916
* Tidy up a bit. No functional change.Jim Grosbach2013-04-059-259/+261
| | | | llvm-svn: 178915
* Correctly pass ownership of MemoryBuffers.Michael J. Spencer2013-04-0518-73/+72
| | | | llvm-svn: 178914
* Fix uninitialized variables. Found by ubsan.Michael J. Spencer2013-04-052-1/+2
| | | | llvm-svn: 178913
* Disable the optimization about promoting vector-element-access with symbolic ↵Shuxin Yang2013-04-052-178/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | index. This optimization is unstable at this moment; it 1) block us on a very important application 2) PR15200 3) test6 and test7 in test/Transforms/ScalarRepl/dynamic-vector-gep.ll (the CHECK command compare the output against wrong result) I personally believe this optimization should not have any impact on the autovectorized code, as auto-vectorizer is supposed to put gather/scatter in a "right" way. Although in theory downstream optimizaters might reveal some gather/scatter optimization opportunities, the chance is quite slim. For the hand-crafted vectorizing code, in term of redundancy elimination, load-CSE, copy-propagation and DSE can collectively achieve the same result, but in much simpler way. On the other hand, these optimizers are able to improve the code in a incremental way; in contrast, SROA is sort of all-or-none approach. However, SROA might slighly win in stack size, as it tries to figure out a stretch of memory tightenly cover the area accessed by the dynamic index. rdar://13174884 PR15200 llvm-svn: 178912
* [libclang] Fix cursor visitation to not ignore template arguments in ↵Argyrios Kyrtzidis2013-04-053-1/+80
| | | | | | | | out-of-line member functions. rdar://13535645 llvm-svn: 178911
* [mips] XFAIL test-interp-vec-loadstore.ll in an attempt to turn builderAkira Hatanaka2013-04-051-0/+1
| | | | | | | | | llvm-mips-linux green. llvm-mips-linux runs on a big endian machine. This test passes if I change 'e' to 'E' in the target data layout string. llvm-svn: 178910
* <rdar://problem/13551789> Fix a race in the LockFileManager.Douglas Gregor2013-04-051-5/+32
| | | | | | | | It's possible for the lock file to disappear and the owning process to return before we're able to see the generated file. Spin for a little while to see if it shows up before failing. llvm-svn: 178909
* <rdar://problem/13551789> Fix yet another race in unique_file.Douglas Gregor2013-04-051-3/+1
| | | | | | | | | If the directory that will contain the unique file doesn't exist when we tried to create the file, but another process creates it before we get a chance to try creating it, we would bail out rather than try to create the unique file. llvm-svn: 178908
* Fix UseNullptr fails to replace explict casts surrounded by another implicitAriel J. Bernal2013-04-052-4/+31
| | | | | | | | | | | | cast UseNullptr previously matched the implicit cast to const pointer as well as the explicit cast within that has an implicit cast to nullptr as a descendant. -Refactored UseNullptr to avoid special-casing certain kinds of cast sequences -Added test cases. llvm-svn: 178907
* Add an error to check that all program scope variables are in the constant ↵Tanya Lattner2013-04-055-6/+20
| | | | | | address space in OpenCL. llvm-svn: 178906
* [Support][FileSystem] Fix identify_magic for big endian ELF.Michael J. Spencer2013-04-052-4/+15
| | | | llvm-svn: 178905
* Move yaml2obj to tools too.Rafael Espindola2013-04-057-4/+4
| | | | llvm-svn: 178904
* doce parsing: adding few more headerdoc tags.Fariborz Jahanian2013-04-053-0/+42
| | | | | | // rdar://12379114 llvm-svn: 178903
* Committing change left out of r178900Edwin Vane2013-04-051-1/+1
| | | | llvm-svn: 178902
* Fix symbol dependency errors introduced with libmigrateCoreEdwin Vane2013-04-053-32/+29
| | | | | | | | | | With cpp11-migrate core functionality moved to a separate library (for enabling unit tests) this library contained code that referenced symbols that are still in the main binary. On some platforms, the shared library build broke as a result. This revision fixes the dependency problem and is safe for the eventual lib-ification of the transforms as well. llvm-svn: 178901
* Updating cpp11-migrate unit testsEdwin Vane2013-04-055-8/+60
| | | | | | | | With the lib-ification of cpp11-migrate, real unit tests can be written. Replacing dummy tests with some simple tests for the Transform public interface. llvm-svn: 178900
* [analyzer] Eliminates all the cases with unknown family.Anton Yartsev2013-04-051-6/+7
| | | | | | Now treat AF_None family as impossible in isTrackedFamily() llvm-svn: 178899
* Try to appease the atom buildbotsManman Ren2013-04-051-1/+4
| | | | llvm-svn: 178898
* <rdar://problem/13563628>Enrico Granata2013-04-0510-20/+75
| | | | | | | | | | Introducing a negative cache for ObjCLanguageRuntime::LookupInCompleteClassCache() This helps speed up the (common) case of us looking for classes that are hidden deep within Cocoa internals and repeatedly failing at finding type information for them. In order for this to work, we need to clean this cache whenever debug information is added. A new symbols loaded event is added that is triggered with add-dsym (before modules loaded would be triggered for both adding modules and adding symbols). Interested parties can register for this event. Internally, we make sure to clean the negative cache whenever symbols are added. Lastly, ClassDescriptor::IsTagged() has been refactored to GetTaggedPointerInfo() that also (optionally) returns info and value bits. In this way, data formatters can share tagged pointer code instead of duplicating the required arithmetic. llvm-svn: 178897
* Define versions of Section that are explicitly marked as little endian.Rafael Espindola2013-04-052-36/+68
| | | | | | These should really be templated like ELF, but this is a start. llvm-svn: 178896
* Added two debug logging messages to VisitInstructionsTopDown to match ↵Michael Gottesman2013-04-051-0/+4
| | | | | | VisitInstructionsBottomUp. llvm-svn: 178895
* Don't use InMemoryStruct in getSection and getSection64.Rafael Espindola2013-04-052-89/+53
| | | | llvm-svn: 178894
* Cleaned up whitespace and made debug logging less verbose.Michael Gottesman2013-04-051-114/+95
| | | | llvm-svn: 178893
* Fix bug in __libcpp_db::__iterator_copy. Add debug test for swaping lists.Howard Hinnant2013-04-053-4/+45
| | | | llvm-svn: 178892
* [analyzer] Re-enable cplusplus.NewDelete (but not NewDeleteLeaks).Jordan Rose2013-04-0511-21/+26
| | | | | | | | As mentioned in the previous commit message, the use-after-free and double-free warnings for 'delete' are worth enabling even while the leak warnings still have false positives. llvm-svn: 178891
* [analyzer] Split new/delete checker into use-after-free and leaks parts.Jordan Rose2013-04-059-26/+99
| | | | | | | | | | | | This splits the leak-checking part of alpha.cplusplus.NewDelete into a separate user-level checker, alpha.cplusplus.NewDeleteLeaks. All the difficult false positives we've seen with the new/delete checker have been spurious leak warnings; the use-after-free warnings and mismatched deallocator warnings, while rare, have always been valid. <rdar://problem/6194569> llvm-svn: 178890
* Fixme comment.Jim Ingham2013-04-051-0/+6
| | | | llvm-svn: 178889
* Allow breaking after 'class' for classes with looong names.Daniel Jasper2013-04-052-2/+9
| | | | | | (Don't ask, this was a user request). llvm-svn: 178888
* Fix bad formatting of overloaded operator definitions.Daniel Jasper2013-04-052-1/+6
| | | | | | | | | | | | | | | | Before: bool operator< (const aaaaaaaaaaaaaaaaaaaaa &left, const aaaaaaaaaaaaaaaaaaaaa &right) { return left.group < right.group; } After: bool operator<(const aaaaaaaaaaaaaaaaaaaaa &left, const aaaaaaaaaaaaaaaaaaaaa &right) { return left.group < right.group; } llvm-svn: 178887
* Add triple to testing case to appease poewrpc64 buildbotsManman Ren2013-04-051-2/+2
| | | | llvm-svn: 178886
* Make the test/CodeGen/X86/win32_sret.ll reliable on any CPU by explicitly ↵Timur Iskhodzhanov2013-04-051-7/+6
| | | | | | specifying the -mcpu llvm-svn: 178885
* Reverting 178851 as it broke buildbotsRenato Golin2013-04-052-271/+10
| | | | llvm-svn: 178883
* Add test case for r178881.Chad Rosier2013-04-051-1/+9
| | | | llvm-svn: 178882
* [ms-inline asm] Add support for numeric displacement expressions in bracketedChad Rosier2013-04-052-65/+284
| | | | | | | | | | | | | | | | | | | | | | memory operands. Essentially, this layers an infix calculator on top of the parsing state machine. The scale on the index register is still expected to be an immediate __asm mov eax, [eax + ebx*4] and will not work with more complex expressions. For example, __asm mov eax, [eax + ebx*(2*2)] The plus and minus binary operators assume the numeric value of a register is zero so as to not change the displacement. Register operands should never be an operand for a multiply or divide operation; the scale*indexreg expression is always replaced with a zero on the operand stack to prevent such a case. rdar://13521380 llvm-svn: 178881
* [Support] Disable assertion dialogs from the MSVC debug CRTReid Kleckner2013-04-051-0/+22
| | | | | | | | | | | | | | | | Summary: Sets a report hook that emulates pressing "retry" in the "abort, retry, ignore" dialog box that _CrtDbgReport normally raises. There are many other ways to disable assertion reports, but this was the only way I could find that still calls our exception handler. Reviewers: Bigcheese CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D625 llvm-svn: 178880
* Use ScalarBitSetTraits.Rafael Espindola2013-04-051-83/+84
| | | | | | What was missing was were the type strong operator|. llvm-svn: 178879
* Proper prefix for doxygen commentsEli Bendersky2013-04-051-3/+3
| | | | llvm-svn: 178878
* Fix include guards to match new location.Rafael Espindola2013-04-051-2/+2
| | | | llvm-svn: 178877
* [asan] make huge_negative_hea_oob more meaningfulKostya Serebryany2013-04-051-1/+4
| | | | llvm-svn: 178876
* Don't fetch pointers from a InMemoryStruct.Rafael Espindola2013-04-057-39/+43
| | | | | | | | InMemoryStruct is extremely dangerous as it returns data from an internal buffer when the endiannes doesn't match. This should fix the tests on big endian hosts. llvm-svn: 178875
* [asan] add a test for huge left oobKostya Serebryany2013-04-051-0/+10
| | | | llvm-svn: 178874
* More list debug mode tests.Howard Hinnant2013-04-056-0/+228
| | | | llvm-svn: 178873
* [sanitizer] found a bug by code inspection: CHECK(a=b) instead of ↵Kostya Serebryany2013-04-0511-22/+22
| | | | | | CHECK(a==b). Was puzzled why lint did not catch it. Turns out this check was disabled for asan source. fix all cases and enable the check llvm-svn: 178872
* Enable JIT/MCJIT unit tests for targets with JIT support.Jyotsna Verma2013-04-051-2/+3
| | | | | | | | | Change unittests/ExecutionEngine/Makefile to include Makefile.config before TARGET_HAS_JIT flag is checked. Fixes bug: http://llvm.org/bugs/show_bug.cgi?id=15669 llvm-svn: 178871
* AArch64: bring predefines in line with most recent ACLE documentTim Northover2013-04-052-33/+35
| | | | | | | | | | | The prefixes and names used are now identical to 32-bit ARM, which is also expected to remain unchanged. If we made this change after a release, we'd probably have to support both variants for a while, but I think since AArch64 exists only on trunk now, it's acceptable to simply swap them now. llvm-svn: 178870
* Respect Addend when processing MCJIT relocations to local/global symbols.Ulrich Weigand2013-04-052-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the RuntimeDyldELF::processRelocationRef routine finds the target symbol of a relocation in the local or global symbol table, it performs a section-relative relocation: Value.SectionID = lsi->second.first; Value.Addend = lsi->second.second; At this point, however, any Addend that might have been specified in the original relocation record is lost. This is somewhat difficult to trigger for relocations within the code section since they usually do not contain non-zero Addends (when built with the default JIT code model, in any case). However, the problem can be reliably triggered by a relocation within the data section caused by code like: int test[2] = { -1, 0 }; int *p = &test[1]; The initializer of "p" will need a relocation to "test + 4". On platforms using RelA relocations this means an Addend of 4 is required. Current code ignores this addend when processing the relocation, resulting in incorrect execution. Fixed by taking the Addend into account when processing relocations to symbols found in the local or global symbol table. Tested on x86_64-linux and powerpc64-linux. llvm-svn: 178869
* [msan] Fix sigaction interceptor.Evgeniy Stepanov2013-04-052-4/+14
| | | | llvm-svn: 178868
* [msan] Conditionally disable new() and delete() wrappers.Evgeniy Stepanov2013-04-052-1/+6
| | | | | | To be used with static libstdc++. llvm-svn: 178866
OpenPOWER on IntegriCloud