summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add support for gnu archives with a string table and no symtab.Rafael Espindola2013-07-033-27/+60
| | | | | | While there, use early returns to reduce nesting. llvm-svn: 185547
* Make llvm-nm return 1 on error.Rafael Espindola2013-07-032-0/+25
| | | | | | | This is a small compatibility improvement with gnu nm and makes llvm-nm more useful as a testing tool. llvm-svn: 185546
* Fix PR16454: Don't #include altivec.h when preprocessing assembly.Bill Schmidt2013-07-031-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the -maltivec flag is present, altivec.h is auto-included for the compilation. This is not appropriate when the job action is to preprocess a file containing assembly code. So don't do that. I was unable to convert the test in the bug report into a regression test. The original symptom was exposed with: % touch x.S % ./bin/clang -target powerpc64-unknown-linux-gnu -maltivec -S -o - x.S I tried this test (and numerous variants) on a PPC64 system: ---------------------------------------------------------------------------- // RUN: touch %t // RUN: %clang -maltivec -S %t -o - | FileCheck %s // Verify that assembling an empty file does not auto-include altivec.h. // CHECK-NOT: static vector ---------------------------------------------------------------------------- However, this test passes for some reason even on a clang built without the fix. I'd be happy to add a test case but at this point I'm not able to figure one out, and I don't want to hold up the patch unnecessarily. Please let me know if you have ideas. Thanks, Bill llvm-svn: 185544
* Test case for PR7887 - failed with asm("")Serge Pavlov2013-07-031-0/+12
| | | | llvm-svn: 185543
* [PowerPC] Remove dead code from PPCDAGToDAGISel::SelectSETCCUlrich Weigand2013-07-031-23/+5
| | | | | | | | | | | | | | | | The subroutine getCRIdxForSetCC has a parameter "Other" and comment: If this returns with Other != -1, then the returned comparison is an or of two simpler comparisons. However for at least the last five years this routine has never returned a value of Other != -1; these cases are now handled differently to begin with. This patch removes the parameter and the code in SelectSETCC that attempted to handle the Other != -1 case. llvm-svn: 185541
* Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid ↵Craig Topper2013-07-0311-35/+35
| | | | | | specifying the vector size. llvm-svn: 185540
* Fix regular expression used by 'make update' to only look for 'I' and '?' at ↵Craig Topper2013-07-031-1/+1
| | | | | | | | the start of svn info results and to check for spaces after 'I' instead of just after '?'. Previously it was able to match 'I' anywhere in the filenames of the svn info results instead of just files that where ignored or unknown to svn. This would cause 'make update' to infinitely recurse if a file was modified with I anywhere in its name since svn info would return a Path pointing to the llvm root for those files. llvm-svn: 185539
* [msan] Unpoison stack allocations and undef values in blacklisted functions.Evgeniy Stepanov2013-07-032-10/+49
| | | | | | | This changes behavior of -msan-poison-stack=0 flag from not poisoning stack allocations to actively unpoisoning them. llvm-svn: 185538
* We don't need to know the OpenSUSE version, so don't parse it.Rafael Espindola2013-07-031-19/+11
| | | | | | Patch by Johannes Obermayr. llvm-svn: 185537
* [sanitizer] Fix memory leak in sanitizer_common discovered by LeakSanitizer.Sergey Matveev2013-07-031-0/+1
| | | | llvm-svn: 185536
* cpp11-migrate: Add Replace-AutoPtr TransformEdwin Vane2013-07-0318-3/+953
| | | | | | | | | | | | Add a new transform to replace uses of 'std::auto_ptr' by 'std::unique_ptr'. Copy-ctor and assign-operator are wrapped with a call to 'std::move()'. Note that until header modification is ready it is not that useful, that's why it's marked as (EXPERIMENTAL) in the command line description and a "Known Limitations" section is present in the transform documentation. Author: Guillaume Papin <guillaume.papin@epitech.eu> llvm-svn: 185535
* [PECOFF][Writer] Fix SizeOfImage header. It should include the first ↵Rui Ueyama2013-07-032-7/+5
| | | | | | unmapped page. llvm-svn: 185534
* [PowerPC] Make specialized AltiVec patterns isCodeGenOnlyUlrich Weigand2013-07-031-2/+3
| | | | | | | | | | | A couple of AltiVec patterns are just specialized forms of the generic instruction pattern, and should therefore be marked isCodeGenOnly to avoid confusing the asm parser: VCFSX_0, VCTUXS_0, VCFUX_0, VCTSXS_0, and V_SETALLONES. Noticed by inspection of the generated PPCGenAsmMatcher.inc. llvm-svn: 185533
* [PowerPC] Support mtspr/mfspr in the asm parserUlrich Weigand2013-07-034-15/+28
| | | | | | | | | This adds support for the generic forms of mtspr/mfspr for the asm parser. The compiler will continue to use the specialized patters for mtlr etc. since those are needed to correctly describe data flow. llvm-svn: 185532
* Prevent error message when formatting an empty file.Daniel Jasper2013-07-031-0/+2
| | | | | | This fixes llvm.org/PR16514. llvm-svn: 185531
* Don't insert confusing line breaks in comparisons.Daniel Jasper2013-07-032-2/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In general, clang-format breaks after an operator if the LHS spans multiple lines. Otherwise, this can lead to confusing effects and effectively hide the operator precendence, e.g. in if (aaaaaaaaaaaaaa == bbbbbbbbbbbbbb && c) { ... This patch removes this rule for comparisons, if the LHS is not a binary expression itself as many users were wondering why clang-format inserts an unnecessary linebreak. Before: if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ... After: if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ... In the long run, we might: - Want to do this for other binary expressions as well. - Do this only if the RHS is short or even only if it is a literal. llvm-svn: 185530
* [SystemZ] Fold more spillsRichard Sandiford2013-07-0360-251/+4023
| | | | | | | | | | | | | | | Add a mapping from register-based <INSN>R instructions to the corresponding memory-based <INSN>. Use it to cut down on the number of spill loads. Some instructions extend their operands from smaller fields, so this required a new TSFlags field to say how big the unextended operand is. This optimisation doesn't trigger for C(G)R and CL(G)R because in practice we always combine those instructions with a branch. Adding a test for every other case probably seems excessive, but it did catch a missed optimisation for DSGF (fixed in r185435). llvm-svn: 185529
* This corrects the implementation of Thumb ADR instruction. There are three ↵Mihai Popa2013-07-039-14/+62
| | | | | | | | | | issues: 1. it should accept only 4-byte aligned addresses 2. the maximum offset should be 1020 3. it should be encoded with the offset scaled by two bits llvm-svn: 185528
* ARM: relax the atomic release barrier to "dmb ishst" on SwiftTim Northover2013-07-034-57/+112
| | | | | | | | | | | Swift cores implement store barriers that are stronger than the ARM specification but weaker than general barriers. They are, in fact, just about enough to provide the ordering needed for atomic operations with release semantics. This patch makes use of that quirk. llvm-svn: 185527
* [SystemZ] Rename mapping table fieldsRichard Sandiford2013-07-032-37/+37
| | | | | | | | | | | | | Rename Function->DispKey and PairType->DispSize. I'd originally used "Function" because I thought it might be useful for other InstMappings. However, it turns out that having two very similar instructions with the same Function makes it pretty useless for anything other than the displacement size key. Other InstMappings will want the key to be defined for only one instruction in the pair. No behavioural change intended. llvm-svn: 185526
* [SystemZ] Fix caller-allocated save slot FIXMERichard Sandiford2013-07-033-46/+21
| | | | | | | Get rid of some old code (and associated FIXME) for handling the caller-allocated register save area. No behavioural change intended. llvm-svn: 185525
* Guard a test that fails on a Release build.Rui Ueyama2013-07-032-0/+14
| | | | llvm-svn: 185524
* Remove unused field.Eric Christopher2013-07-031-12/+19
| | | | llvm-svn: 185523
* [analyzer] Improve handling of noreturn destructorsPavel Labath2013-07-032-13/+27
| | | | | | | | | | | | | | | | Summary: The analyzer incorrectly handled noreturn destructors which were hidden inside function calls. This happened because NoReturnFunctionChecker only listened for PostStmt events, which are not executed for destructor calls. I've changed it to listen to PostCall events, which should catch both cases. Reviewers: jordan_rose CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1056 llvm-svn: 185522
* [PECOFF][Writer] Separate AtomChunk from SectionChunk.Rui Ueyama2013-07-031-15/+31
| | | | | | | | | | | | The optional data directory header contains addresses to some atoms such as the import address table in data section. Such fields can naturally be set by relocation if we make the optional data driectory as an atom. Currently we assume that atoms are always in a section, so we can't create a file header with atoms. This patch separates section chunk from atom chunk, to allow atom-based file header. llvm-svn: 185521
* Constify a few functions.Eric Christopher2013-07-031-3/+3
| | | | llvm-svn: 185520
* [XCore] Whitespace fixes, no functionality change.Richard Osborne2013-07-031-3/+3
| | | | llvm-svn: 185519
* [XCore] Add ISel pattern for LDWCPRichard Osborne2013-07-032-8/+16
| | | | | | Patch by Robert Lytton. llvm-svn: 185518
* Add "explicit" to ctors where appropriate.Rui Ueyama2013-07-033-5/+6
| | | | llvm-svn: 185517
* [PECOFF] Handle hint field in Hint/Name table in the import library.Rui Ueyama2013-07-032-19/+31
| | | | | | | | | | A hint is an index of the export pointer table in a DLL, at which PE/COFF loader starts looking for a symbol name. The import library comes with hints and symbol pairs, and as long as hints are in sync with the actual symbol table in DLL, the symbols will be resolved quickly. So, we shouldn't ignore hints but propagate them to an output. llvm-svn: 185516
* [PECOFF][Writer] Simplifies the COFFBaseDefinedAtom ctor by defining a new ↵Rui Ueyama2013-07-032-27/+29
| | | | | | class. llvm-svn: 185515
* Use SmallVectorImpl::const_iterator instead of SmallVector to avoid ↵Craig Topper2013-07-031-4/+4
| | | | | | specifying the vector size. llvm-svn: 185514
* Use SmallVectorImpl instead of SmallVector as method argument to avoid ↵Craig Topper2013-07-032-2/+2
| | | | | | specifying vector size. llvm-svn: 185513
* Use SmallVectorImpl instead of SmallVector for iterators and references to ↵Craig Topper2013-07-0314-41/+41
| | | | | | avoid specifying the vector size unnecessarily. llvm-svn: 185512
* Use SmallVectorImpl::iterator/const_iterator instead of SmallVectorEric Christopher2013-07-032-6/+6
| | | | | | to avoid specifying the vector size. llvm-svn: 185511
* Remove lldb's custom copy of the C++ demangler, used only on MacJason Molenda2013-07-036-11248/+0
| | | | | | | | OS X. Testsuite shows no change in results using the system runtime's demangler. <rdar://problem/12029914> llvm-svn: 185510
* Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid ↵Craig Topper2013-07-031-2/+2
| | | | | | specifying the vector size. llvm-svn: 185509
* Introduce some typedefs for DenseMaps containing SmallVectors so the vector ↵Craig Topper2013-07-032-7/+9
| | | | | | size doesn't have to repeated when creating iterators for the DenseMap. llvm-svn: 185508
* Return SmallVectorImpl& instead of SmallVector& in a couple places to avoid ↵Craig Topper2013-07-032-9/+9
| | | | | | having to specify the vector size in multiple places. llvm-svn: 185507
* Add a space between type and variable name. No functional change.Craig Topper2013-07-031-2/+2
| | | | llvm-svn: 185506
* Use SmallVectorImpl& instead of SmallVector& to avoid needlessly ↵Craig Topper2013-07-031-6/+6
| | | | | | respecifying the small vector size. llvm-svn: 185505
* Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid ↵Craig Topper2013-07-031-8/+8
| | | | | | specifying the vector size. llvm-svn: 185504
* Change the gettimeofday test to only test on a posix platform.Michael Gottesman2013-07-031-1/+3
| | | | llvm-svn: 185503
* Added support in FunctionAttrs for adding relevant function/argument ↵Michael Gottesman2013-07-032-0/+13
| | | | | | | | | | attributes for the posix call gettimeofday. This implies annotating it as nounwind and its arguments as nocapture. To be conservative, we do not annotate the arguments with noalias since some platforms do not have restrict on the declaration for gettimeofday. llvm-svn: 185502
* Added posix function gettimeofday to LibFunc::Func for all platforms but ↵Michael Gottesman2013-07-032-0/+4
| | | | | | | | | | | Windows. *NOTE* In a recent version of posix, they added the restrict keyword to the arguments for this function. From some spelunking it seems that on some platforms, the call has restrict on its arguments and others it does not. Thus I left off the restrict keyword from the function prototype in the comment. llvm-svn: 185501
* Avoid doing a lot of computation when we have multiple ranges andEric Christopher2013-07-031-26/+29
| | | | | | | avoid adding information for the debug_inlined section when it isn't going to be emitted anyhow. llvm-svn: 185500
* SystemZInstrInfo.cpp: Tweak an assertion. [-Wunused-variable]NAKAMURA Takumi2013-07-031-2/+2
| | | | llvm-svn: 185499
* Move iterator to where it's used and update comments.Eric Christopher2013-07-031-1/+3
| | | | llvm-svn: 185498
* Move instance variable before experimental section.Eric Christopher2013-07-031-4/+5
| | | | llvm-svn: 185497
* Fix typo to make grep for DW_AT_comp_dir work without case-insensitiveEric Christopher2013-07-031-1/+1
| | | | | | grep. llvm-svn: 185496
OpenPOWER on IntegriCloud