summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [OPENMP] Codegen for threadprivate variablesAlexey Bataev2014-11-1119-21/+1110
| | | | | | | | | For all threadprivate variables which have constructor/destructor emit call to void __kmpc_threadprivate_register(ident_t * <Current Location>, void *<Original Global Addr>, kmpc_ctor <Constructor>, kmpc_cctor NULL, kmpc_dtor <Destructor>); In expressions all references to such variables are replaced by calls to void *__kmpc_threadprivate_cached(ident_t *<Current Location>, kmp_int32 <Current Thread Id>, void *<Original Global Addr>, size_t <Size of Data>, void ***<Pointer to autogenerated cache – array of private copies of threadprivate variable>); Test test/OpenMP/threadprivate_codegen.cpp checks that codegen is correct. Also it checks that codegen is correct after serialization/deserialization and one of passes verifies debug info. Differential Revision: http://reviews.llvm.org/D4002 llvm-svn: 221663
* Fix parsing of fold-expressions within a cast expression. We parse theRichard Smith2014-11-112-8/+13
| | | | | | | parenthesized expression a bit differently in this case, just in case the commas have special meaning. llvm-svn: 221661
* Made the expression parser more resilient againstSean Callanan2014-11-111-0/+21
| | | | | | | | | being asked about symbols it doesn't know about. If it's asked about a symbol by mangled name and it finds nothing, then it will try again with the demangled base name. llvm-svn: 221660
* InstrProf: Remove an unnecessary helper function (NFC)Justin Bogner2014-11-111-26/+12
| | | | | | | VisitSubStmtRBraceState is really just Visit, as long as VisitCompoundStatement handles braces correctly. llvm-svn: 221659
* Ignore templated aggregates in the Objective-CSean Callanan2014-11-111-0/+12
| | | | | | | | | | | | | | runtime. This eliminates potential confusion when the compiler has to deal with these weird types later on. One day I'd like to actually generate the proper templates, but this is not the day that I write the parser code to do that. <rdar://problem/18887634> llvm-svn: 221658
* [X86] Custom lower UINT_TO_FP from v4f32 to v4i32, and for v8f32 to v8i32 ifQuentin Colombet2014-11-116-20/+285
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AVX2 is available. According to IACA, the new lowering has a throughput of 8 cycles instead of 13 with the previous one. Althought this lowering kicks in some SPECs benchmarks, the performance improvement was within the noise. Correctness testing has been done for the whole range of uint32_t with the following program: uint4 v = (uint4) {0,1,2,3}; uint32_t i; //Check correctness over entire range for uint4 -> float4 conversion for( i = 0; i < 1U << (32-2); i++ ) { float4 t = test(v); float4 c = correct(v); if( 0xf != _mm_movemask_ps( t == c )) { printf( "Error @ %vx: %vf vs. %vf\n", v, c, t); return -1; } v += 4; } Where "correct" is the old lowering and "test" the new one. The patch adds a test case for the two custom lowering instruction. It also modifies the vector cost model, which is why cast.ll and uitofp.ll are modified. 2009-02-26-MachineLICMBug.ll is also modified because we now hoist 7 instructions instead of 4 (3 more constant loads). rdar://problem/18153096> llvm-svn: 221657
* Add a missing parenthesis mistakenly dropped in r221621.Bob Wilson2014-11-111-1/+1
| | | | llvm-svn: 221656
* CGExpr.cpp: Suppress a warning. [-Wunused-variable]NAKAMURA Takumi2014-11-111-0/+2
| | | | llvm-svn: 221655
* [mach-o] Fix lazy binding offsetsNick Kledzik2014-11-118-126/+124
| | | | | | | | | | The way lazy binding works in mach-o is that the linker generates a helper function and has the stub (PLT) initially jump to it. The helper function pushes an extra parameter then jumps into dyld. The extra parameter is an offset into the lazy binding info where dyld will find the information about which symbol to bind and way lazy binding pointer to update. llvm-svn: 221654
* [Sanitizer] Refactor sanitizer options in LangOptions.Alexey Samsonov2014-11-1112-51/+69
| | | | | | | | | | | | | | | | | | Get rid of ugly SanitizerOptions class thrust into LangOptions: * Make SanitizeAddressFieldPadding a regular language option, and rely on default behavior to initialize/reset it. * Make SanitizerBlacklistFile a regular member LangOptions. * Introduce the helper class "SanitizerSet" to represent the set of enabled sanitizers and make it a member of LangOptions. It is exactly the entity we want to cache and modify in CodeGenFunction, for instance. We'd also be able to reuse SanitizerSet in CodeGenOptions for storing the set of recoverable sanitizers, and in the Driver to represent the set of sanitizers turned on/off by the commandline flags. No functionality change. llvm-svn: 221653
* speling.Nico Weber2014-11-111-1/+1
| | | | llvm-svn: 221652
* Fixed two issues in the type encoding parser:Sean Callanan2014-11-111-82/+82
| | | | | | | | | | | | - A correctness issue: with assertions disabled, ReadQuotedString would misbehave; and - A performance issue: BuildType used a long chain of if()s; I changed that to two switch statements. That also makes the code much nicer to step through when debugging it. llvm-svn: 221651
* [ELF] Change order of section match.Shankar Easwaran2014-11-111-1/+1
| | | | | | Addressed comments from Sean silva. llvm-svn: 221650
* Revert "Add support library."Shankar Easwaran2014-11-1110-192/+112
| | | | | | This reverts commit r221583. llvm-svn: 221649
* [Gnu][Driver] Use StringRef conversion functionsShankar Easwaran2014-11-111-13/+7
| | | | llvm-svn: 221648
* Fix error handling in NativeProcessLinux::AttachToInferior: ↵Shawn Best2014-11-111-1/+8
| | | | | | http://reviews.llvm.org/D6158 llvm-svn: 221647
* Move CodeGenOptions constructor out-of-line and add missing headers. NFC.Alexey Samsonov2014-11-113-9/+27
| | | | llvm-svn: 221646
* Move SanitizerKind class to a separate header. NFC.Alexey Samsonov2014-11-112-6/+29
| | | | llvm-svn: 221645
* EricQWF's code coverage work showed that none of the libc++ tests were ↵Marshall Clow2014-11-114-7/+81
| | | | | | exercising some code in vector<bool>. Add more tests in an attempt to get better coverage llvm-svn: 221644
* Added a testcase that checks that fairly complicatedSean Callanan2014-11-113-0/+77
| | | | | | | | | | | | structures are parsed safely by the Objective-C runtime. Also made some modifications to the way we parse structs in the runtime to avoid mis-parsing @ followed by the name of the next field. <rdar://problem/18887634> llvm-svn: 221643
* [ProcessWindows] Implement breakpoint stop / resume on Windows.Zachary Turner2014-11-1110-11/+173
| | | | | | | | | | | | | | This patch implements basic support for stopping at breakpoints and resuming later. While a breakpoint is stopped at, LLDB will cease to process events in the debug loop, effectively suspending the process, and then resume later when ProcessWindows::DoResume is called. As a side effect, this also correctly handles the loader breakpoint (i.e. the initial stop) so that LLDB goes through the correct state sequence during the initial process launch. llvm-svn: 221642
* [libclang] When initializing an ObjC object via the "[[ClassName alloc] ↵Argyrios Kyrtzidis2014-11-102-2/+24
| | | | | | | | | | | | init*]" pattern, report the 'init*' invocation as non-dynamic via clang_Cursor_isDynamicCall. Of course it is dynamic at runtime, but for purposes of indexing we can treat as an invocation to ClassName's init*. Addresses rdar://18916871. llvm-svn: 221641
* Cleaned up the StringLexer a little bit. It turnsSean Callanan2014-11-102-27/+14
| | | | | | | | | | | out we only want to roll back text that was in the buffer to begin with, so it's not necessary to provide a pushback stack. I'm going to use this slightly cleaner API to perform lookahead for the Objective-C runtime type parser. llvm-svn: 221640
* [yaml2obj] Support AArch64 relocations.Chad Rosier2014-11-102-0/+133
| | | | | | | Patch by Daniel Stewart <stewartd@codeaurora.org>! Phabricator Revision: http://reviews.llvm.org/D6192 llvm-svn: 221639
* configure.ac lives in autoconf/, not autotools/Rafael Espindola2014-11-101-1/+1
| | | | | | Patch by Palmer Dabbelt! llvm-svn: 221638
* [ProcessWindows] Notify process plugin when the launch succeeds.Zachary Turner2014-11-109-53/+89
| | | | llvm-svn: 221637
* Fix some compiler warnings, one of which was a legit bug.Zachary Turner2014-11-102-7/+5
| | | | | | | | | | | | MSVC warns that not all control paths return a value when a switch doesn't have a default case handler. Changed explicit value checks to a default check. Also, it caught a case where bitwise AND was being used instead of logical AND. I'm not sure what this fixes, but presumably it is not covered by any kind of test case. llvm-svn: 221636
* Propagate SanitizerKind into CodeGenFunction::EmitCheck() call.Alexey Samsonov2014-11-106-48/+85
| | | | | | | | | | | | | | | | Make sure CodeGenFunction::EmitCheck() knows which sanitizer it emits check for. Make CheckRecoverableKind enum an implementation detail and move it away from header. Currently CheckRecoverableKind is determined by the type of sanitizer ("unreachable" and "return" are unrecoverable, "vptr" is always-recoverable, all the rest are recoverable). This will change in future if we allow to specify which sanitizers are recoverable, and which are not by -fsanitize-recover= flag. No functionality change. llvm-svn: 221635
* Validate user headers even if -fmodules-validate-once-per-build-sessionBen Langmuir2014-11-102-10/+23
| | | | | | | | is enabled. Unlike system headers, we want to be more careful about modifications to user headers, because it's still easy to edit a header while you're building. llvm-svn: 221634
* Fix comments to match the current reality.Greg Clayton2014-11-101-2/+2
| | | | llvm-svn: 221633
* Fix selectors not being objc-uniquified in the expression parser after a ↵Greg Clayton2014-11-101-1/+1
| | | | | | recent renaming in clang (clang change for revision 221451). This broke all objective C expressions in LLDB. llvm-svn: 221632
* AArch64: set all processor features from -arch if nothing else presentTim Northover2014-11-102-0/+9
| | | | | | | | | | Darwin's "-arch arm64" option implies full Cyclone CPU, for both architectural and tuning purposes. So if neither of the explicit options have been given, forward that on to the proper invocation. rdar://problem/18906227 llvm-svn: 221631
* Improve diagnostics if _Noreturn is placed after a function declarator. ↵Richard Smith2014-11-104-3/+34
| | | | | | (This sometimes happens when a macro is used that expands to either the GNU noreturn attribute or _Noreturn.) llvm-svn: 221630
* Reverting r221626 due to a too-strict test.Michael Kuperstein2014-11-102-17/+0
| | | | llvm-svn: 221629
* [AArch64][FastISel] Fix kill flags for integer extends.Juergen Ributzka2014-11-102-0/+28
| | | | | | | | | In the case we optimize an integer extend away and replace it directly with the source register, we also have to clear all kill flags at all its uses. This is necessary, because the orignal IR instruction might be trivially dead, but we replaced it with a nop at MI level. llvm-svn: 221628
* [SwitchLowering] Fix the "fixPhis" function.Juergen Ributzka2014-11-102-8/+37
| | | | | | | | | | | | | | | Switch statements may have more than one incoming edge into the same BB if they all have the same value. When the switch statement is converted these incoming edges are now coming from multiple BBs. Updating all incoming values to be from a single BB is incorrect and would generate invalid LLVM IR. The fix is to only update the first occurrence of an incoming value. Switch lowering will perform subsequent calls to this helper function for each incoming edge with a new basic block - updating all edges in the process. This fixes rdar://problem/18916275. llvm-svn: 221627
* [X86] Fix pattern match for 32-to-64-bit zext in the presence of AssertSextMichael Kuperstein2014-11-102-0/+17
| | | | | | | | | This fixes an issue with matching trunc -> assertsext -> zext on x86-64, which would not zero the high 32-bits. See PR20494 for details. Differential Revision: http://reviews.llvm.org/D6128 llvm-svn: 221626
* Remove change to set SDKROOT when building compiler-rt on Darwin.Bob Wilson2014-11-101-17/+0
| | | | | | | | This reverts the runtime library portion of r194168. As of r221621, the libclang_rt libraries for Darwin build with explicit SDK options so there is no need to set SDKROOT here. llvm-svn: 221625
* Fix a problem reported by Ed Maste where the test harness was failing to ↵Enrico Granata2014-11-101-1/+1
| | | | | | call bound methods as cleanup hooks llvm-svn: 221624
* Update fold-expression mangling to match cxx-abi-dev discussion.Richard Smith2014-11-102-12/+10
| | | | llvm-svn: 221623
* Clean up indentation after previous change.Bob Wilson2014-11-101-17/+17
| | | | llvm-svn: 221622
* Build Darwin libclang_rt libraries against real SDKs.Bob Wilson2014-11-1015-527/+52
| | | | | | | | | | | The minimal fake SDK was very useful in allowing us to build for all Darwin platforms without needing access to the real SDKs, but it did not support building any of the sanitizer runtimes. It's important to fix that. As a consequence, if you don't have the iOS SDKs installed, we will now skip building the iOS-specific libclang_rt libraries. rdar://problem/18825276 llvm-svn: 221621
* Copy externally_initialized in GlobalVariable::copyAttributesFrom.Rafael Espindola2014-11-102-0/+8
| | | | | | Patch by Kevin Frei! llvm-svn: 221620
* [NVPTX] Add an NVPTX-specific TargetTransformInfoJingyue Wu2014-11-105-12/+115
| | | | | | | | | | | | | | | | | | | | Summary: It currently only implements hasBranchDivergence, and will be extended in later diffs. Split from D6188. Test Plan: make check-all Reviewers: jholewinski Reviewed By: jholewinski Subscribers: llvm-commits, meheff, eliben, jholewinski Differential Revision: http://reviews.llvm.org/D6195 llvm-svn: 221619
* Misc style fixes. NFC.Rafael Espindola2014-11-1011-353/+275
| | | | | | | | | | | | | This fixes a few cases of: * Wrong variable name style. * Lines longer than 80 columns. * Repeated names in comments. * clang-format of the above. This make the next patch a lot easier to read. llvm-svn: 221615
* Only build iOS runtime libraries when the iOS SDKs are available.Bob Wilson2014-11-101-6/+17
| | | | | | | | | This was already set up for the iOS simulator ASan dylib simulator, and this change extends that to the other iOS runtime libraries. This is in preparation for building all those iOS libraries against the real SDKs instead of the fake SDKs in compiler-rt. llvm-svn: 221614
* Fix extra semicolon warning. NFC.Vasileios Kalintiris2014-11-101-1/+1
| | | | llvm-svn: 221613
* [mips][microMIPS] Fix issue with delay slot filler and microMIPSZoran Jovanovic2014-11-102-11/+37
| | | | | | Differential Revision: http://reviews.llvm.org/D6193 llvm-svn: 221612
* Fix new noreturn test on !darwin platformsEd Maste2014-11-101-2/+3
| | | | | | | | r221575 introduced a NoreturnUnwind test that did not skip the dsym test on non-darwin platforms, and had the @dwarf_test case as an exact copy of the dsym case (including the test name, test_with_dsym). llvm-svn: 221611
* Do not build a separate x86_64h Haswell slice for the iOS simulator.Bob Wilson2014-11-101-7/+4
| | | | | | | | r199996 added new x86_64h slices for all the Darwin compiler_rt libraries that had an x86_64 slice, but that is overkill for the iOS Simulator platform where the x86_64h slice is never used. llvm-svn: 221610
OpenPOWER on IntegriCloud