summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Unbreak the build.Benjamin Kramer2014-10-251-0/+1
| | | | llvm-svn: 220617
* Clean up assume intrinsic pattern matching, no need to check that the ↵Benjamin Kramer2014-10-253-15/+11
| | | | | | | | argument is a value. Also make it const safe and remove superfluous casting. NFC. llvm-svn: 220616
* [SeparateConstOffsetFromGEP] Fixed a bug in rebuilding OR expressionsJingyue Wu2014-10-252-2/+26
| | | | | | | | | | | | The two operands of the new OR expression should be NextInChain and TheOther instead of the two original operands. Added a regression test in split-gep.ll. Hao Liu reported this bug, and provded the test case and an initial patch. Thanks! llvm-svn: 220615
* Lex: Fix an invalid access into a SmallStringDavid Majnemer2014-10-253-5/+14
| | | | | | | | | | | | | We would crash because we used operator[] to access past the end of a SmallString. This occured because our token had length zero. Instead, form the pointer using .data() and arithmetic. This is safe because this forms a one-past-the-end pointer and it is only used to compare with another one-past-the-end pointer. This fixes PR21379. llvm-svn: 220614
* [X86][SSE] Vector integer/float conversion memory foldingSimon Pilgrim2014-10-251-7/+7
| | | | | | | | Tidied up some entries in the folding tables so that they are under the correct comment section (they were categorised as AVX2 instructions when they're AVX1). Minor patch agreed with qcolombet. llvm-svn: 220613
* InstCombine: Remove overzealous assertsDavid Majnemer2014-10-251-12/+19
| | | | | | | | | | | | | | These asserts can trigger if the worklist iteration order is sufficiently unlucky. Instead of adding special case logic to handle these edge conditions, just bail out on trying to transform them: InstSimplify will get them when it reaches them on the worklist. This fixes PR21378. N.B. No test case is included because any test would rely on the fragile worklist iteration order. llvm-svn: 220612
* Allow the C API users to keep relying on the OutMessages parameter.Rafael Espindola2014-10-251-1/+26
| | | | | | Should fix the Ocaml tests. llvm-svn: 220611
* Remove unused variable.Rafael Espindola2014-10-251-1/+1
| | | | llvm-svn: 220610
* Update for LLVM api change.Rafael Espindola2014-10-251-6/+31
| | | | llvm-svn: 220609
* Update the error handling of lib/Linker.Rafael Espindola2014-10-2512-135/+127
| | | | | | Instead of passing a std::string&, use the new diagnostic infrastructure. llvm-svn: 220608
* [NVPTX] aligned byte-buffers for vector return typesJingyue Wu2014-10-252-1/+20
| | | | | | | | | | | | | | | | | | | Summary: Fixes PR21100 which is caused by inconsistency between the declared return type and the expected return type at the call site. The new behavior is consistent with nvcc and the NVPTXTargetLowering::getPrototype function. Test Plan: test/Codegen/NVPTX/vector-return.ll Reviewers: jholewinski Reviewed By: jholewinski Subscribers: llvm-commits, meheff, eliben, jholewinski Differential Revision: http://reviews.llvm.org/D5612 llvm-svn: 220607
* Make this test a bit stricter by checking clang's output too.Rafael Espindola2014-10-251-1/+1
| | | | llvm-svn: 220604
* Add a test for the -suppress-warnings option.Rafael Espindola2014-10-251-0/+3
| | | | llvm-svn: 220603
* Setting breakpoints with name mask eFunctionNameTypeBase was broken for ↵Jim Ingham2014-10-254-37/+33
| | | | | | | | straight C names by 220432. Get that working again. llvm-svn: 220602
* [msan] Make -msan-check-constant-shadow a bit stronger.Evgeniy Stepanov2014-10-242-3/+25
| | | | | | Allow (under the experimental flag) non-Instructions to participate in MSan checks. llvm-svn: 220601
* Modernize the error handling of the Materialize function.Rafael Espindola2014-10-2412-37/+40
| | | | llvm-svn: 220600
* Fix a Mach-O assembler segfault for a subtraction expression with an ↵Kevin Enderby2014-10-243-4/+19
| | | | | | | | | | | | | | | | | undefined symbol. In a Mach-O object file a relocatable expression of the form SymbolA - SymbolB + constant is allowed when both symbols are defined in a section. But when either symbol is undefined it is an error. The code was crashing when it had an undefined symbol in this case. And should have printed a error message using the location information in the relocation entry. rdar://18678402 llvm-svn: 220599
* [mach-o] Support old style objc class names in export listsNick Kledzik2014-10-242-0/+83
| | | | | | | | | Objective-C switched to a new ABI which uses a different mangling for class names. But to keep projects building that use export lists that use the old class name mangling, the linker recognizes the old names and transforms them to the new mangling. llvm-svn: 220598
* [mach-o] Support data-only dylibsNick Kledzik2014-10-246-31/+48
| | | | | | | | In final linked shared images, the __TEXT segment contains both code and the mach-o header/load-commands. In the case of a data-only dylib, there is no code, so we need to force the addition of the __TEXT segment. llvm-svn: 220597
* Implement explicit thread stack size specification on Windows.Zachary Turner2014-10-242-6/+6
| | | | llvm-svn: 220596
* CodeGen: Don't form weak dllexport aliasesDavid Majnemer2014-10-242-2/+14
| | | | | | | | | | | The MS linker cannot do anything interesting with these, it doesn't make sense to emit them. This fixes PR21373. Differential Revision: http://reviews.llvm.org/D5986 llvm-svn: 220595
* Sink DwarfUnit::constructImportedEntityDIE into DwarfCompileUnit.Frederic Riss2014-10-244-32/+32
| | | | | | | | | | So that it has access to getOrCreateGlobalVariableDIE. If we ever support decsribing using directive in C++ classes (thus requiring support in type units), it will certainly use another mechanism anyway. Differential Revision: http://reviews.llvm.org/D5975 llvm-svn: 220594
* test: correct an overzealous search-and-replaceSaleem Abdulrasool2014-10-241-2/+2
| | | | | | | The temporary initialized is referenced as %0, not as the auto-release pool. Fixes R+A tests. llvm-svn: 220593
* [X86][SSE] Bitcast assertion in XFormVExtractWithShuffleIntoLoadSimon Pilgrim2014-10-242-9/+28
| | | | | | | | | | Minor patch to fix an issue in XFormVExtractWithShuffleIntoLoad where a load is unary shuffled, then bitcast (to a type with the same number of elements) before extracting an element. An undef was created for the second shuffle operand using the original (post-bitcasted) vector type instead of the pre-bitcasted type like the rest of the shuffle node - this was then causing an assertion on the different types later on inside SelectionDAG::getVectorShuffle. Differential Revision: http://reviews.llvm.org/D5917 llvm-svn: 220592
* Remove duplicated new file contentEd Maste2014-10-243-93/+0
| | | | llvm-svn: 220591
* CodeGen: correct materialize temporary aggregates in ARC modeSaleem Abdulrasool2014-10-242-3/+74
| | | | | | | | | | | | | | | | | | Avoid an assertion when materializing a lifetime type aggregate temporary. When performing CodeGen for ObjC++, we could generate a lifetime-only aggregate temporary by using an initializer list (which is effectively an array). We would reach through the temporary expression, fishing out the inner expression. If this expression was a lifetime expression, we would attempt to emit this as a scalar. This would eventually result in an assertion as the emission would eventually assert that the expression being emitted has a scalar evaluation kind. Add a case to handle the aggregate expressions. Use the EmitAggExpr to emit the aggregate expression rather than the EmitScalarInit. Addresses PR21347. llvm-svn: 220590
* [modules] Support combining 'textual' with 'private'.Richard Smith2014-10-2411-138/+135
| | | | llvm-svn: 220589
* Itanium ABI: Template template parameters are usable as substitutionsDavid Majnemer2014-10-242-10/+29
| | | | | | | | | | | | | Template template parameters weren't added to the list of substitutions. This would make the substitution map contain inaccurate mappings, leading to Clang violating the Itanium ABI and breaking compatibility with GCC. This fixes PR21351. Differential Revision: http://reviews.llvm.org/D5959 llvm-svn: 220588
* CodeGen: trivial conversion to range based loopSaleem Abdulrasool2014-10-241-4/+4
| | | | | | Switch to a range-based for loop. NFC. llvm-svn: 220587
* test: add -std=c++11Saleem Abdulrasool2014-10-241-1/+1
| | | | | | | This test uses C++11 features (r-value references) in ObjC++. Add a -std=c++11 to silence a warning. NFC. llvm-svn: 220586
* CodeGen: GLValue exprs in template parameters should have reference typeDavid Majnemer2014-10-242-0/+12
| | | | | | | | This fixes a corner-case where __uuidof as a template argument would result in us trying to emit a GLValue as an RValue. This would lead to a crash down the road. llvm-svn: 220585
* [Hexagon] Resubmission of 220427Colin LeMahieu2014-10-2423-292/+248
| | | | | | | | | | | Modified library structure to deal with circular dependency between HexagonInstPrinter and HexagonMCInst. Adding encoding bits for add opcode. Adding llvm-mc tests. Removing unit tests. http://reviews.llvm.org/D5624 llvm-svn: 220584
* Patch from ovyalov@google.com:Jim Ingham2014-10-241-4/+4
| | | | | | | Handle pexpect exceptions correctly so that processes spawned with pexpect are always reaped. llvm-svn: 220583
* Add runtime flag 'symbolize_inline_frames' to disable symbolization of ↵Alexey Samsonov2014-10-245-5/+23
| | | | | | inlined frames done in llvm-symbolizer llvm-svn: 220582
* Fix copy paste commentMatt Arsenault2014-10-241-2/+2
| | | | llvm-svn: 220581
* Don't ever call materializeAllPermanently during LTO.Rafael Espindola2014-10-2414-77/+76
| | | | | | | | | | To do this, change the representation of lazy loaded functions. The previous representation cannot differentiate between a function whose body has been removed and one whose body hasn't been read from the .bc file. That means that in order to drop a function, the entire body had to be read. llvm-svn: 220580
* Allow AVX vrsqrtps generation.Sanjay Patel2014-10-242-8/+30
| | | | | | | This is a follow-on to r220570 that allows a 256-bit (v8f32) version of vrsqrtps to be generated. llvm-svn: 220579
* DebugInfo: Sink DwarfDebug::ScopeVariables down into DwarfFileDavid Blaikie2014-10-245-11/+11
| | | | | | | | (part of refactoring to allow subprogram emission in both the skeleton and main units to enable -gmlt-like data to be included in the skeleton for live inlined backtracing purposes) llvm-svn: 220578
* remove class/function/variable names from comments; NFCSanjay Patel2014-10-241-20/+13
| | | | llvm-svn: 220577
* Fix windows-cross.c test on my machineReid Kleckner2014-10-241-8/+8
| | | | | | I suspect it will need a custom sysroot to pass reliably elsewhere. llvm-svn: 220576
* Remove DwarfDebug::FirstCU as it has no useDavid Blaikie2014-10-242-17/+5
| | | | | | | It was only being used as a flag to identify the lack of debug info from within endModule - use the section labels for that instead. llvm-svn: 220575
* Make ProcessWindows just use Host::LaunchProcess.Zachary Turner2014-10-242-6/+2
| | | | llvm-svn: 220574
* Add frontend support for __vectorcallReid Kleckner2014-10-2426-31/+145
| | | | | | | | | | | | | Wire it through everywhere we have support for fastcall, essentially. This allows us to parse the MSVC "14" CTP headers, but we will miscompile them because LLVM doesn't support __vectorcall yet. Reviewed By: Aaron Ballman Differential Revision: http://reviews.llvm.org/D5808 llvm-svn: 220573
* Use enumerators instead of hardcoded integers when processing macro names.Serge Pavlov2014-10-243-16/+24
| | | | llvm-svn: 220572
* tsan: support mmap(MAP_32BIT)Dmitry Vyukov2014-10-249-198/+332
| | | | | | | | | Allow user memory in the first TB of address space. This also enabled non-pie binaries and freebsd. Fixes issue: https://code.google.com/p/thread-sanitizer/issues/detail?id=5 llvm-svn: 220571
* Use rsqrt (X86) to speed up reciprocal square root calcsSanjay Patel2014-10-2410-46/+185
| | | | | | | | | | | | | | | | | | | | | This is a first step for generating SSE rsqrt instructions for reciprocal square root calcs when fast-math is allowed. For now, be conservative and only enable this for AMD btver2 where performance improves significantly - for example, 29% on llvm/projects/test-suite/SingleSource/Benchmarks/BenchmarkGame/n-body.c (if we convert the data type to single-precision float). This patch adds a two constant version of the Newton-Raphson refinement algorithm to DAGCombiner that can be selected by any target via a parameter returned by getRsqrtEstimate().. See PR20900 for more details: http://llvm.org/bugs/show_bug.cgi?id=20900 Differential Revision: http://reviews.llvm.org/D5658 llvm-svn: 220570
* [Modules] Free modules that failed signature verification.Benjamin Kramer2014-10-241-0/+1
| | | | | | The control flow and ownership is weird enough so unique_ptr doesn't help here :( llvm-svn: 220569
* [mips] Replace MipsABIEnum with a MipsABIInfo class.Daniel Sanders2014-10-247-32/+70
| | | | | | | | | | | | | | | | | | | | | Summary: No functional change yet, it's just an object replacement for an enum. It will allow us to gather ABI information in a single place so that we can start testing for properties of the ABI's instead of the ABI itself. For example we will eventually be able to use: ABI.MinStackAlignmentInBytes() instead of: (isABI_N32() || isABI_N64()) ? 16 : 8 which is clearer and more maintainable. Reviewers: matheusalmeida Reviewed By: matheusalmeida Differential Revision: http://reviews.llvm.org/D3341 llvm-svn: 220568
* [Object] Fix MachO's getUuid to return a pointer into the object instead of ↵Benjamin Kramer2014-10-241-2/+3
| | | | | | | | | a dangling ArrayRef. This works because uuid's are always little endian so it's not swapped. Fixes use-after-return reported by asan. llvm-svn: 220567
* [mips] Mark aggregate arguments passed in registers with the inreg attributeDaniel Sanders2014-10-245-17/+20
| | | | | | | | | | | | | | | | | | | Summary: This allows us to easily identify them in the backend which in turn allows us to handle them correctly for big-endian targets (where they must be shifted into the upper bits of the register). Depends on D5961 Reviewers: atanasyan Reviewed By: atanasyan Subscribers: cfe-commits, theraven Differential Revision: http://reviews.llvm.org/D5962 llvm-svn: 220566
OpenPOWER on IntegriCloud