summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove old 'grep' lines.Bill Wendling2012-04-081-2/+0
| | | | llvm-svn: 154283
* Formatting changes. Don't put spaces in front of some code, which only makes ↵Bill Wendling2012-04-081-70/+68
| | | | | | it look 'off'. llvm-svn: 154282
* FileCheckize these testcases.Bill Wendling2012-04-0815-48/+119
| | | | llvm-svn: 154281
* Remove the 'Parent' pointer from the MDNodeOperand class.Bill Wendling2012-04-081-11/+26
| | | | | | | | | | | | An MDNode has a list of MDNodeOperands allocated directly after it as part of its allocation. Therefore, the Parent of the MDNodeOperands can be found by walking back through the operands to the beginning of that list. Mark the first operand's value pointer as being the 'first' operand so that we know where the beginning of said list is. This saves a *lot* of space during LTO with -O0 -g flags. llvm-svn: 154280
* Allow subclasses of the ValueHandleBase to store information as part of theBill Wendling2012-04-082-29/+40
| | | | | | | value pointer by making the value pointer into a pointer-int pair with 2 bits available for flags. llvm-svn: 154279
* Don't forget to evaluate the subexpression in a null pointer cast. If we'reRichard Smith2012-04-082-0/+11
| | | | | | converting from std::nullptr_t, the subexpression might have side-effects. llvm-svn: 154278
* [docs] Add more open projects.Michael J. Spencer2012-04-084-7/+30
| | | | llvm-svn: 154277
* [docs] Add documentation todos.Michael J. Spencer2012-04-082-1/+6
| | | | llvm-svn: 154276
* [docs] Make the index page ReST based instead of html based.Michael J. Spencer2012-04-085-124/+81
| | | | llvm-svn: 154275
* [docs] Add open projects page that includes the TODO.txt files.Michael J. Spencer2012-04-074-21/+28
| | | | llvm-svn: 154274
* ext_reserved_user_defined_literal must not default to Error in ↵Francois Pichet2012-04-073-1/+12
| | | | | | | | MicrosoftMode. Hence create ext_ms_reserved_user_defined_literal that doesn't default to Error; otherwise MSVC headers won't parse. Fixes PR12383. llvm-svn: 154273
* Turn avx2 vinserti128 intrinsic calls into INSERT_SUBVECTOR DAG nodes and ↵Craig Topper2012-04-072-6/+6
| | | | | | remove patterns for selecting the intrinsic. Similar was already done for avx1. llvm-svn: 154272
* MIPS: Pass -mabi option to the assmbler when compile MIPS targets.Simon Atanasyan2012-04-072-14/+28
| | | | llvm-svn: 154270
* MIPS: Move code calculates CPU and ABI names to the separate function to ↵Simon Atanasyan2012-04-071-13/+21
| | | | | | reuse this function later. llvm-svn: 154269
* Move vinsertf128 patterns near the instruction definitions. Add ↵Craig Topper2012-04-071-42/+41
| | | | | | AddedComplexity to AVX2 vextracti128 patterns to give them priority over the integer versions of vextractf128 patterns. llvm-svn: 154268
* Remove 'else' after 'if' that ends in return.Craig Topper2012-04-071-1/+1
| | | | llvm-svn: 154267
* 1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a newNadav Rotem2012-04-077-26/+55
| | | | | | | | | | shuffle node because it could introduce new shuffle nodes that were not supported efficiently by the target. 2. Add a more restrictive shuffle-of-shuffle optimization for cases where the second shuffle reverses the transformation of the first shuffle. llvm-svn: 154266
* Convert floating point division by a constant into multiplication by theDuncan Sands2012-04-073-6/+51
| | | | | | | | reciprocal if converting to the reciprocal is exact. Do it even if inexact if -ffast-math. This substantially speeds up ac.f90 from the polyhedron benchmarks. llvm-svn: 154265
* Perform partial SROA on the helper hashing structure. I really wish theChandler Carruth2012-04-071-42/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | optimizers could do this for us, but expecting partial SROA of classes with template methods through cloning is probably expecting too much heroics. With this change, the begin/end pointer pairs which indicate the status of each loop iteration are actually passed directly into each layer of the combine_data calls, and the inliner has a chance to see when most of the combine_data function could be deleted by inlining. Similarly for 'length'. We have to be careful to limit the places where in/out reference parameters are used as those will also defeat the inliner / optimizers from properly propagating constants. With this change, LLVM is able to fully inline and unroll the hash computation of small sets of values, such as two or three pointers. These now decompose into essentially straight-line code with no loops or function calls. There is still one code quality problem to be solved with the hashing -- LLVM is failing to nuke the alloca. It removes all loads from the alloca, leaving only lifetime intrinsics and dead(!!) stores to the alloca. =/ Very unfortunate. llvm-svn: 154264
* Fix ValueTracking to conclude that debug intrinsics are safe toChandler Carruth2012-04-072-4/+52
| | | | | | | | | | | | | | | | | | speculate. Without this, loop rotate (among many other places) would suddenly stop working in the presence of debug info. I found this looking at loop rotate, and have augmented its tests with a reduction out of a very hot loop in yacr2 where failing to do this rotation costs sometimes more than 10% in runtime performance, perturbing numerous downstream optimizations. This should have no impact on performance without debug info, but the change in performance when debug info is enabled can be extreme. As a consequence (and this how I got to this yak) any profiling of performance problems should be treated with deep suspicion -- they may have been wildly innacurate of debug info was enabled for profiling. =/ Just a heads up. llvm-svn: 154263
* SCEV: When expanding a GEP the final addition to the base pointer has NUW ↵Benjamin Kramer2012-04-073-6/+6
| | | | | | | | but not NSW. Found by inspection. llvm-svn: 154262
* Fix Thumb __builtin_longjmp with integrated assembler. <rdar://problem/11203543>Bob Wilson2012-04-071-2/+2
| | | | | | | | | | | | | | | | | The tLDRr instruction with the last register operand set to the zero register prints in assembly as if no register was specified, and the assembler encodes it as a tLDRi instruction with a zero immediate. With the integrated assembler, that zero register gets emitted as "r0", so we get "ldr rx, [ry, r0]" which is broken. Emit the instruction as tLDRi with a zero immediate. I don't know if there's a good way to write a testcase for this. Suggestions welcome. Opportunities for follow-up work: 1) The asm printer should complain if a non-optional register operand is set to the zero register, instead of silently dropping it. 2) The integrated assembler should complain in the same situation, instead of silently emitting the operand as "r0". llvm-svn: 154261
* Rewritten expandRegion to clarify the intention and improveHongbin Zheng2012-04-071-27/+35
| | | | | | performance, patched by Johannes Doerfert <johannes@jdoerfert.de>. llvm-svn: 154260
* ScopDetection: Add some comments to function "expandRegion".Hongbin Zheng2012-04-071-0/+6
| | | | llvm-svn: 154259
* Speed up SCoP detection time by checking the exit of the region first,Hongbin Zheng2012-04-071-2/+2
| | | | | | patched by Johannes Doerfert <johannes@jdoerfert.de>. llvm-svn: 154258
* Linux/ProcessMonitor: include sys/user.h for user_regs_struct and ↵Benjamin Kramer2012-04-071-0/+1
| | | | | | user_fpregs_struct. llvm-svn: 154255
* [Cygwin] Work around to flush stdout in a thread, or stdout in threads won't ↵NAKAMURA Takumi2012-04-072-0/+6
| | | | | | be flushed at exit. llvm-svn: 154254
* Version bump to lldb-138.Jason Molenda2012-04-074-18/+18
| | | | llvm-svn: 154252
* CodeGen: Allow Polly to do 'grouped unrolling', but no vector generation.Tobias Grosser2012-04-072-0/+33
| | | | | | | | | | Grouped unrolling means that we unroll a loop such that the different instances of a certain statement are scheduled right after each other, but we do not generate any vector code. The idea here is that we can schedule the bb vectorizer right afterwards and use it heuristics to decide when vectorization should be performed. llvm-svn: 154251
* Fix a integer trauction issue - calculating the current time inJason Molenda2012-04-072-5/+5
| | | | | | | | | | | | | nanoseconds in 32-bit expression would cause pthread_cond_timedwait to time out immediately. Add explicit casts to the TimeValue::TimeValue ctor that takes a struct timeval and change the NanoSecsPerSec etc constants defined in TimeValue to be uint64_t so any other calculations involving these should be promoted to 64-bit even when lldb is built for 32-bit. <rdar://problem/11204073>, <rdar://problem/11179821>, <rdar://problem/11194705>. llvm-svn: 154250
* Refactor: Use positive field names in VectorizeConfig.Hongbin Zheng2012-04-072-25/+27
| | | | llvm-svn: 154249
* Fix several problems with protected access control:John McCall2012-04-078-66/+242
| | | | | | | | | | | | | | | | | | | | | - The [class.protected] restriction is non-trivial for any instance member, even if the access lacks an object (for example, if it's a pointer-to-member constant). In this case, it is equivalent to requiring the naming class to equal the context class. - The [class.protected] restriction applies to accesses to constructors and destructors. A protected constructor or destructor can only be used to create or destroy a base subobject, as a direct result. - Several places were dropping or misapplying object information. The standard could really be much clearer about what the object type is supposed to be in some of these accesses. Usually it's easy enough to find a reasonable answer, but still, the standard makes a very confident statement about accesses to instance members only being possible in either pointer-to-member literals or member access expressions, which just completely ignores concepts like constructor and destructor calls, using declarations, unevaluated field references, etc. llvm-svn: 154248
* Target/X86/MCTargetDesc/X86MCAsmInfo.cpp: Enable DwarfCFI (aka DW2) on Cygming.NAKAMURA Takumi2012-04-072-0/+4
| | | | | | | Cygwin-1.7 supports dw2. Some recent mingw distros support one, too. I have confirmed test-suite/SingleSource/Benchmarks/Shootout-C++/except.cpp can pass on Cygwin. llvm-svn: 154247
* Add to-do listsNick Kledzik2012-04-072-0/+36
| | | | llvm-svn: 154246
* Make the test for r154235 more platform-independent with a shorterAlexis Hunt2012-04-071-1/+1
| | | | | | string. llvm-svn: 154243
* First implementation of Darwin Platform. It is rich enough to generateNick Kledzik2012-04-0731-89/+2906
| | | | | | | | | | a hello world executable from atoms. There is still much to be flushed out. Added one test case, test/darwin/hello-world.objtxt, which exercises the darwin platform. Added -platform option to lld-core tool to dynamically select platform. llvm-svn: 154242
* test/lit.cfg: Please pass %INCLUDE% to clang.exe on Win32. MS-compatible ↵NAKAMURA Takumi2012-04-071-2/+5
| | | | | | clang may refer to %INCLUDE%. It fixes r154188. llvm-svn: 154240
* Removed redundant isxdigit checks and added the ability to GetHexU8() so it ↵Greg Clayton2012-04-072-19/+12
| | | | | | can extract an 8 bit hex value if one is available. It will set EOF if "set_eof_on_fail" is true or if out of data. This allows a string decoder to grab a string without losing the last part of the packet with a packet like "414243,abc" (it can extract "ABC" and leave the file position set to the comma). llvm-svn: 154239
* Output UTF-8-encoded characters as identifier characters into assemblyAlexis Hunt2012-04-074-4/+19
| | | | | | | | | | | | | | by default. This is a behaviour configurable in the MCAsmInfo. I've decided to turn it on by default in (possibly optimistic) hopes that most assemblers are reasonably sane. If this proves a problem, switching to default seems reasonable. I'm not sure if this is the opportune place to test, but it seemed good to make sure it was tested somewhere. llvm-svn: 154235
* Hardened the struct layout code to eliminate aSean Callanan2012-04-071-0/+5
| | | | | | | potential crash if the underlying type couldn't be completed. llvm-svn: 154234
* [driver] In general, the driver claims redundant args and uses the last arg.Chad Rosier2012-04-072-0/+3
| | | | | | | | However, the '-x' option has special handling and wasn't following this paradigm. Fix it to do so by claiming the arg as we parse the '-x' option. rdar://11203340 llvm-svn: 154231
* We sometimes need to be able to call functions (via Process::RunThreadPlan) ↵Jim Ingham2012-04-0710-135/+298
| | | | | | | | | | | | from code run on the private state thread. To do that we have to spin up a temporary "private state thread" that will respond to events from the lower level process plugins. This check-in should work to do that, but it is still buggy. However, if you don't call functions on the private state thread, these changes make no difference. This patch also moves the code in the AppleObjCRuntime step-through-trampoline handler that might call functions (in the case where the debug server doesn't support the memory allocate/deallocate packet) out to a safe place to do that call. llvm-svn: 154230
* [docs] Note that 'make.bat' provides the same interface as the Makefile forDaniel Dunbar2012-04-061-5/+9
| | | | | | Windows users. llvm-svn: 154229
* [docs] Start a development guide, and write an introduction to Sphinx basedDaniel Dunbar2012-04-064-1/+165
| | | | | | documentation. llvm-svn: 154228
* [docs] Don't duplicate the intro and fix wording.Michael J. Spencer2012-04-062-39/+8
| | | | llvm-svn: 154227
* Tidy up. 80 columns.Jim Grosbach2012-04-065-5/+9
| | | | llvm-svn: 154226
* Remove "parse error" in favor of more descriptive diagnostics.David Blaikie2012-04-065-11/+9
| | | | | | | | | | | In a few cases clang emitted a rather content-free diagnostic: 'parse error'. This change replaces two actual cases (template parameter parsing and K&R parameter declaration parsing) with more specific diagnostics and removes a third dead case of this in the BalancedDelimiterTracker (the ctor already checked the invariant necessary to ensure that the diag::parse_error was never actually used). llvm-svn: 154224
* Changed some tabs to spaces to make Python likeSean Callanan2012-04-061-24/+24
| | | | | | this file. llvm-svn: 154222
* The remaining time calculation didn't reflect theSean Callanan2012-04-061-1/+1
| | | | | | --start argument. Fixed that. llvm-svn: 154221
* more testing of objc's dictionary literal translation.Fariborz Jahanian2012-04-061-1/+19
| | | | llvm-svn: 154220
OpenPOWER on IntegriCloud