summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AArch64/ARM64: port across stub handling for ELF C++ exceptions.Tim Northover2014-04-163-6/+39
| | | | | | | | The most important part here is that we should actuall emit the stubs we refer to in the exception table, but as a side issue this uses more sensible & GCC compatible representations for some of the bits of information. llvm-svn: 206380
* ARM64: use 32-bit moves for constants where possible.Tim Northover2014-04-1611-47/+63
| | | | | | | | | | | | If we know that a particular 64-bit constant has all high bits zero, then we can rely on the fact that 32-bit ARM64 instructions automatically zero out the high bits of an x-register. This gives the expansion logic less constraints to satisfy and so sometimes allows it to pick better sequences. Came up while porting test/CodeGen/AArch64/movw-consts.ll: this will allow a 32-bit MOVN to be used in @test8 soon. llvm-svn: 206379
* ARM64: use the integrated assembler on ELF.Tim Northover2014-04-162-0/+8
| | | | llvm-svn: 206378
* [mips] Emit '.set nomicromips' before a function's entry labelMatheus Almeida2014-04-163-15/+18
| | | | | | | | | | | if not in micromips mode. The test (elf_st_other.ll) was renamed as the name and description didn't make sense as the test wasn't checking any symbol table entry. Differential Revision: http://reviews.llvm.org/D3346 llvm-svn: 206377
* Fixing a compile error in debug versions of MSVC. It seems that the ↵Aaron Ballman2014-04-161-1/+2
| | | | | | range-based for loop is confused by the DEBUG macro expansion unless a compound statement is used. llvm-svn: 206376
* [LCG] Stop playing fast and loose with reference members and assignment.Chandler Carruth2014-04-161-11/+4
| | | | | | | | | It doesn't work. I'm still cleaning up all the places where I blindly followed this pattern. There are more to come in this code too. As a benefit, this lets the default copy and move operations Just Work. llvm-svn: 206375
* Adding a move constructor (due to CopyOnWriteVector requiring move-only ↵Aaron Ballman2014-04-161-0/+6
| | | | | | semantics) to appease MSVC. llvm-svn: 206374
* Hopefully avoid a warning on some GCCs (but not all strangely,Chandler Carruth2014-04-161-2/+4
| | | | | | | | | | preventing me from seeing it initially). GCC doesn't use the unused attribute on members for anything, so while it works to suppress Clang's warning for an unused private member, it adds a GCC warning for the attribute. =/ Silence Clang's warning with a void cast in the constructor instead which doesn't trigger any complaints from GCC. llvm-svn: 206373
* [Allocator] Make BumpPtrAllocator movable and move assignable.Chandler Carruth2014-04-162-3/+47
| | | | llvm-svn: 206372
* [mips] Correct callee saved list for the N32 ABI and enable testDaniel Sanders2014-04-162-7/+6
| | | | | | | | | | | | Summary: Depends on D3339 Reviewers: matheusalmeida, vmedic Reviewed By: matheusalmeida Differential Revision: http://reviews.llvm.org/D3340 llvm-svn: 206371
* [mips] Add calling convention tests covering O32, N32, and N64.Daniel Sanders2014-04-1615-0/+1528
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I had difficulty finding tests for the N32 and N64 ABI so I've added a collection of calling convention tests based on the document MIPS ABIs Described (MD00305), the MIPSpro N32 Handbook, and the SYSV ABI. Where the documents/implementations disagree, I've used GCC to resolve the conflict. A few interesting details: * For N32, LLVM uses 64-bit pointers when saving $ra despite pointers being 32-bit. I've yet to find a supporting statement in the ABI documentation but the current behaviour matches GCC. * For O32, the non-variable portion of a varargs argument list is also subject to the rule that floating-point is passed via GPR's (on N32/N64 only the variable portion is subject to this rule). This agrees with GCC's behaviour and the SYSV ABI but contradicts part of the MIPSpro N32 Handbook which talks about O32's behaviour. * The N32 implementation has the wrong callee-saved register list. (I already have a fix for this but will commit it as a follow-up). I've left RUN-TODO lines in for O32 on MIPS64. I don't plan to support this case for now but we should revisit it. Reviewers: matheusalmeida, vmedic Reviewed By: matheusalmeida Differential Revision: http://reviews.llvm.org/D3339 llvm-svn: 206370
* [Allocator] Nuke to useless functions. The implicit ones are sufficientChandler Carruth2014-04-161-3/+0
| | | | | | here (obviously). llvm-svn: 206369
* ARM64: explicitly ask for Apple NEON syntax so test passes on LinuxTim Northover2014-04-161-1/+1
| | | | llvm-svn: 206368
* [asan] try to harden __tls_get_addr interceptor against signals (no good ↵Kostya Serebryany2014-04-162-10/+11
| | | | | | test still); update the comment in a test. llvm-svn: 206367
* ARM64: mark x7 as used when an i128 gets shunted onto the stack.Tim Northover2014-04-162-1/+11
| | | | | | | | The second half of a split i128 was ending up in x7, which is not a good thing. This is another part of PR19432. llvm-svn: 206366
* DAGCombiner: don't optimise non-existant litpool loadTim Northover2014-04-163-37/+71
| | | | | | | | | | | This particular DAG combine is designed to kick in when both ConstantFPs will end up being loaded via a litpool, however those nodes have a semi-legal status, dictated by isFPImmLegal so in some cases there wouldn't have been a litpool in the first place. Don't try to be clever in those circumstances. Picked up while merging some AArch64 tests. llvm-svn: 206365
* Sema: Factor out argument range checks for builtin functionsRichard Sandiford2014-04-162-111/+21
| | | | | | No behavioural change intended. llvm-svn: 206364
* Simplify a static_assert so VS2013 can build itTimur Iskhodzhanov2014-04-161-2/+4
| | | | llvm-svn: 206363
* Re-enable several builtins in non-gnu modes.Evgeniy Stepanov2014-04-163-16/+22
| | | | | | | | | This is a partial revert of 183015. By not recognizing things like _setjmp we lose (returns_twice) attribute on them, which leads to incorrect code generation. Fixes PR16138. llvm-svn: 206362
* [C++11] Use nullptrTobias Grosser2014-04-1610-59/+59
| | | | llvm-svn: 206361
* -Wunreachable-code: refine recognition of unreachable "sigil" to cope with ↵Ted Kremenek2014-04-164-1/+63
| | | | | | | | implicit casts in C++. Fixes <rdar://problem/16631033>. llvm-svn: 206360
* COFF: fix an off by one errorSaleem Abdulrasool2014-04-162-4/+4
| | | | | | | | | | Adjust the tests to validate the number of auxiliary entries used to store the filename. Thanks to majnemer's sharp eye for catching the missing - 1 in the round up calculation. llvm-svn: 206359
* [Mips] Emit PLT entries for more static relocations.Simon Atanasyan2014-04-164-6/+255
| | | | llvm-svn: 206358
* Convert SelectionDAG::getVTList to use ArrayRefCraig Topper2014-04-1611-31/+32
| | | | llvm-svn: 206357
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-1614-50/+59
| | | | | | instead of comparing to nullptr. llvm-svn: 206356
* COFF: add support for .file symbolsSaleem Abdulrasool2014-04-163-2/+47
| | | | | | | | | | | | | Add support for emitting .file records. This is mostly a quality of implementation change (more complete support for COFF file emission) that was noticed while working on COFF file emission for Windows on ARM. A .file record is emitted as a symbol with storage class FILE (103) and the name ".file". A series of auxiliary format 4 records follow which contain the file name. The filename is stored as an ANSI string and is padded with NULL if the length is not a multiple of COFF::SymbolSize (18). llvm-svn: 206355
* tools: fix invalid printing, buffer overrun in llvm-readobjSaleem Abdulrasool2014-04-163-0/+40
| | | | | | All auxiliary records are consumed when accessing a File record. llvm-svn: 206354
* Target: whitespaceSaleem Abdulrasool2014-04-161-1/+1
| | | | llvm-svn: 206353
* Lex: Fix __has_feature(cxx_exceptions) for objective C++Justin Bogner2014-04-162-2/+8
| | | | | | | | | | | | | | | At one point, -fexceptions was a synonym for -fcxx-exceptions. While the driver options still enables cxx-exceptions by default, the cc1 flag is purely about exception tables and this doesn't account for objective C exceptions. Because of this, checking for the cxx_exceptions feature in objective C++ often gives the wrong answer. The cxx_exceptions feature should be based on the -fcxx-exceptions cc1 flag, not -fexceptions. Furthermore, at some point the tests were changed to use cc1 even though they were testing the driver behaviour. We're better off testing both the driver and cc1 here. llvm-svn: 206352
* Clean up the logic in setting timeouts a bit, and the logging as well.Jim Ingham2014-04-161-12/+30
| | | | llvm-svn: 206351
* m_interrupt_sent wasn't being initialized, and wasn't being reset after anJim Ingham2014-04-161-0/+3
| | | | | | interrupt. Do both of those. llvm-svn: 206350
* R600: Extend r600 sign_extend_inreg tests for EGMatt Arsenault2014-04-161-22/+85
| | | | | | Patch by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 206349
* R600: Expand sign extension of vectors.Matt Arsenault2014-04-164-16/+47
| | | | | | | | | | | | | | Setting vector types to expand will result in scalarization on pre SI hw, as those gpus don't have vector shifts either. Expand also i32 vectors, this helps llvm make the correct decision about scalarizing the vector ops. v2: move setOperation() calls to R600ISelLowering.cpp. cleanup the SI code to make it obvious that this patch does is nop for SI Patch by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 206348
* threadSafety::SExprBuilder::BlockInfo: Non-static member initializer is ↵NAKAMURA Takumi2014-04-161-2/+3
| | | | | | unavailable. Use default constructor instead. llvm-svn: 206347
* Reformat.NAKAMURA Takumi2014-04-161-7/+3
| | | | llvm-svn: 206346
* threadSafety::CopyOnWriteVector: Use LLVM_DELETED_FUNCTION here due to ↵NAKAMURA Takumi2014-04-161-2/+2
| | | | | | missing functionality of msc17. llvm-svn: 206345
* [ARM64,C++11] Tidy up branch relaxation a bit w/ c++11.Jim Grosbach2014-04-161-32/+25
| | | | | | No functional change. llvm-svn: 206344
* ARM64: Nuke some dead code.Jim Grosbach2014-04-161-1/+0
| | | | | | Missed in previous commit. llvm-svn: 206343
* Fixed problem with exclude header. The exclude header argument needs to be ↵John Thompson2014-04-162-23/+1
| | | | | | relative to the module.map file. llvm-svn: 206342
* Fix build after r206338Duncan P. N. Exon Smith2014-04-151-1/+1
| | | | llvm-svn: 206341
* Make -Wabsolute-value C++-aware.Richard Trieu2014-04-155-81/+968
| | | | | | | | Warn on std::abs() with unsigned argument. Suggest std::abs as replacement for the C absolute value functions. Suggest C++ headers if the specific std::abs overload is not found. llvm-svn: 206340
* Format.cpp: Don't use initializer list.NAKAMURA Takumi2014-04-151-2/+2
| | | | llvm-svn: 206339
* Thread Safety Analysis: rewrite SSA pass to use the new SExpr and CFGDeLesley Hutchins2014-04-155-173/+659
| | | | | | | traversal system. The new pass is still undergoing testing; no change in functionality. llvm-svn: 206338
* [ARM64,C++11] Clean up the ARM64 LOH collection pass.Jim Grosbach2014-04-151-155/+114
| | | | | | | | Range'ify a bunch of loops, mainly. As a result, we have a variety of objects via reference rather than by pointer, so propogate that through the various helper functions where it makes sense. llvm-svn: 206337
* R600/SI: Print code size along with used registersMatt Arsenault2014-04-152-13/+19
| | | | llvm-svn: 206336
* R600/SI: Print more immediates in hex formatMatt Arsenault2014-04-1521-98/+153
| | | | | | | | | Print in decimal for inline immediates, and hex otherwise. Use hex always for offsets in addressing offsets. This approximately matches what the shader compiler does. llvm-svn: 206335
* R600/SI: Cleanup parsing of register names.Matt Arsenault2014-04-152-34/+47
| | | | | | Try to figure out the class and number of subregisters. llvm-svn: 206334
* Fix formattingTobias Grosser2014-04-151-1/+0
| | | | llvm-svn: 206333
* Fix for vector codegen in OpenMP subfunctionsTobias Grosser2014-04-152-0/+55
| | | | | Contributed-by: Johannes Doerfert <doerfert@cs.uni-saarland.de> llvm-svn: 206332
* Make this test not match its own filename, when being run from a path that ↵Nick Lewycky2014-04-151-1/+1
| | | | | | includes the string 'add'. llvm-svn: 206331
OpenPOWER on IntegriCloud