summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename the unittest from ArrayRecylerTest.cpp to ArrayRecyclerTest.cpp.Chandler Carruth2013-01-051-0/+0
| | | | | | | Fixes the CMake build. It took me cutting and pasting this before I managed to see the missing character. =] llvm-svn: 171589
* [mips] Fix data layout string. Add 64 to the list of native integer widthsAkira Hatanaka2013-01-051-4/+6
| | | | | | and add stack alignment information. llvm-svn: 171587
* Add a method to create an AttributeSet from an AttrBuilder.Bill Wendling2013-01-053-6/+66
| | | | | | | | The Attribute class is eventually going to represent one attribute. So we need this class to create the set of attributes. Add some iterator methods to the builder to access its internal bits in a nice way. llvm-svn: 171586
* Fix a typo. Remove the duplicated test.Nadav Rotem2013-01-051-25/+0
| | | | llvm-svn: 171584
* iLoopVectorize: Non commutative operators can be used as reduction variables ↵Nadav Rotem2013-01-053-7/+44
| | | | | | | | as long as the reduction chain is used in the LHS. PR14803. llvm-svn: 171583
* Force a fixed unroll count on the target independent tests.Nadav Rotem2013-01-0527-27/+27
| | | | | | This should fix clang-native-arm-cortex-a9. Thanks Renato. llvm-svn: 171582
* Add an ArrayRecycler class.Jakob Stoklund Olesen2013-01-053-0/+253
| | | | | | | | This is similar to the existing Recycler allocator, but instead of recycling individual objects from a BumpPtrAllocator, arrays of different sizes can be allocated. llvm-svn: 171581
* Eric thought that Darwin was right to use -1 consistently rather thanChandler Carruth2013-01-051-1/+1
| | | | | | | | | | | leaving this undefined, and despite the sentence in the standard that seems to require it, I'll cede the point and assume its a bug in the wording. Other parts of POSIX regularly allow for things to be -1 instead of undefined, this should too. Makes things more consistent too. This should have to real impact for folks though. llvm-svn: 171574
* Fix a stray 'dnl' that my editor line-wrapped into this comment. ThanksChandler Carruth2013-01-051-2/+2
| | | | | | to filcab on IRC for spotting. llvm-svn: 171573
* Make this an integer so we have enumeral types in the conditionalEric Christopher2013-01-051-1/+1
| | | | | | expression. llvm-svn: 171571
* Finally, fix the autoconf setup to allow for a missing clock_gettime;Chandler Carruth2013-01-052-7/+4
| | | | | | the source code should now be set up to handle this. llvm-svn: 171570
* Provide a default constructor for TimeValue. This was used, but only inChandler Carruth2013-01-051-0/+3
| | | | | | | if-ed out code paths and on Windows. Hopefully restores the Windows build. Thanks to Reid Kleckner for helping triage this. llvm-svn: 171568
* Fix warnings from llvm-gcc as seen on darwin10 (10.6).Alex Rosenberg2013-01-051-2/+2
| | | | llvm-svn: 171567
* Try to suppress the use of clock_gettime on Darwin which apparantlyChandler Carruth2013-01-051-1/+1
| | | | | | | | | | | | | | | | | defines _POSIX_CPUTIME but doesn't support the clock_* functions. I don't test the value of _POSIX_CPUTIME because the spec merely says that if it is defined, the CPU-specific timers are available, whereas it says that _POSIX_TIMERS must be defined and defined to a value greater than zero. However, this may not work, as the POSIX spec clearly states: "If the symbolic constant _POSIX_CPUTIME is defined, then the symbolic constant _POSIX_TIMERS shall also be defined by the implementation to have the value 200112L." If this doesn't work, I'll add more hacks for Darwin. llvm-svn: 171565
* Fix an obvious typo spotted by Reid Kleckner, and breaking windows builds.Chandler Carruth2013-01-041-1/+1
| | | | llvm-svn: 171559
* Get rid of the 'Bits' mask in the attribute builder.Bill Wendling2013-01-042-39/+131
| | | | | | | | The bit mask thing will be a thing of the past. It's not extensible enough. Get rid of its use here. Opt instead for using a vector to hold the attributes. Note: Some of this code will become obsolete once the rewrite is further along. llvm-svn: 171553
* Add time getters to the process interface for requesting the elapsedChandler Carruth2013-01-049-37/+244
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wall time, user time, and system time since a process started. For walltime, we currently use TimeValue's interface and a global initializer to compute a close approximation of total process runtime. For user time, this adds support for an somewhat more precise timing mechanism -- clock_gettime with the CLOCK_PROCESS_CPUTIME_ID clock selected. For system time, we have to do a full getrusage call to extract the system time from the OS. This is expensive but unavoidable. In passing, clean up the implementation of the old APIs and fix some latent bugs in the Windows code. This might have manifested on Windows ARM systems or other systems with strange 64-bit integer behavior. The old API for this both user time and system time simultaneously from a single getrusage call. While this results in fewer system calls, it also results in a lower precision user time and if only user time is desired, it introduces a higher overhead. It may be worthwhile to switch some of the pass timers to not track system time and directly track user and wall time. The old API also tracked walltime in a confusing way -- it just set it to the current walltime rather than providing any measure of wall time since the process started the way buth user and system time are tracked. The new API is more consistent here. The plan is to eventually implement these methods for a *child* process by using the wait3(2) system call to populate an rusage struct representing the whole subprocess execution. That way, after waiting on a child process its stats will become accurate and cheap to query. llvm-svn: 171551
* tabs-to-spacesAndrew Trick2013-01-041-44/+43
| | | | llvm-svn: 171550
* Move 'break' to the right place to prevent fallthru. There is no test-caseJakub Staszak2013-01-041-1/+1
| | | | | | because conditions in the next case prevented from doing anything nasty. llvm-svn: 171549
* Special case Recycler::clear(BumpPtrAllocator).Jakob Stoklund Olesen2013-01-041-0/+11
| | | | | | | | | | | | | | A BumpPtrAllocator has an empty Deallocate() method, but Recycler::clear() would still call it for every single object ever allocated, bringing all those objects into cache. As a bonus, iplist::remove() will also write to the Prev/Next pointers on all the objects, so all those cache lines have to be written back to RAM before the pages are given back to the OS. Stop wasting time and memory bandwith by using the new clearAndLeakUnsafely() function to jettison all the recycled objects. llvm-svn: 171541
* Add an iplist::clearAndLeakNodesUnsafely() function.Jakob Stoklund Olesen2013-01-042-0/+44
| | | | | | | | | | | | The iplist::clear() function can be quite expensive because it traverses the entire list, calling deleteNode() and removeNodeFromList() on each element. If node destruction and deallocation can be handled some other way, clearAndLeakNodesUnsafely() can be used to jettison all nodes without bringing them into cache. The function name is meant to be ominous. llvm-svn: 171540
* Move an assertion so it doesn't dereference end().Jakob Stoklund Olesen2013-01-041-4/+3
| | | | | | The R600 target has test cases that exercises this code. llvm-svn: 171538
* Do not vectorize loops with subtraction reductionsPaul Redmond2013-01-043-2/+51
| | | | | | | | | Since subtraction does not commute the loop vectorizer incorrectly vectorizes reductions such as x = A[i] - x. Disabling for now. llvm-svn: 171537
* Add a name for the anonymous type we're creating for subrangeEric Christopher2013-01-045-42/+86
| | | | | | | | types and a FIXME for what we should be doing. Should solve the immediacy of PR12069 where our debug info is crashing another tool. llvm-svn: 171536
* Added DEBUG message to ObjCARC when we optimize objc_retain => ↵Michael Gottesman2013-01-041-0/+10
| | | | | | objc_retainAutorelasedReturnValue. llvm-svn: 171535
* Fixed up some DEBUG messages where I was putting in the text of a message ↵Michael Gottesman2013-01-041-8/+8
| | | | | | | | the method where it was being called when I should have just prefixed the actual message with Pass::Method. Additionally I fixed some whitespace issues. llvm-svn: 171534
* Fix a warningNadav Rotem2013-01-041-2/+2
| | | | llvm-svn: 171525
* The current Intel Atom microarchitecture has a feature whereby when a functionPreston Gurd2013-01-0411-8/+282
| | | | | | | | | | | | | | | | | returns early then it is slightly faster to execute a sequence of NOP instructions to wait until the return address is ready, as opposed to simply stalling on the ret instruction until the return address is ready. When compiling for X86 Atom only, this patch will run a pass, called "X86PadShortFunction" which will add NOP instructions where less than four cycles elapse between function entry and return. It includes tests. Patch by Andy Zhang. llvm-svn: 171524
* General cleanups.Bill Wendling2013-01-043-69/+60
| | | | | | | | | | * Remove dead methods. * Use the 'operator==' method instead of 'contains', which isn't needed. * Fix some comments. No functionality change. llvm-svn: 171523
* [Object][ELF] Add a maximum alignment. This is used by createELFObjectFile ↵Michael J. Spencer2013-01-045-386/+466
| | | | | | to create a properly aligned reader. llvm-svn: 171520
* [mips] MipsTargetLowering::getSetCCResultType should return a vector type ifAkira Hatanaka2013-01-042-1/+19
| | | | | | vectors are being compared. llvm-svn: 171517
* [mips] 80 columns.Akira Hatanaka2013-01-044-8/+14
| | | | llvm-svn: 171515
* Fix how YAML I/O detects flow sequences. Nick Kledzik2013-01-043-39/+31
| | | | | | | Update test case to verify flow sequence is written as a flow sequence. llvm-svn: 171514
* [mips] Reorder template parameters. Remove class shift_rotate_imm32 andAkira Hatanaka2013-01-042-54/+59
| | | | | | shift_rotate_imm64. llvm-svn: 171513
* Memory Dependence Analysis: fix a miscompile that uses DT to approxmiate theManman Ren2013-01-042-4/+88
| | | | | | | | | | | | reachablity. We conservatively approximate the reachability analysis by saying it is not reachable if there is a single path starting from "From" and the path does not reach "To". rdar://12801584 llvm-svn: 171512
* [mips] Refactor conditional move instructions.Akira Hatanaka2013-01-041-13/+20
| | | | llvm-svn: 171511
* [mips] Refactor instructions which move data from or to coprocessors.Akira Hatanaka2013-01-043-33/+34
| | | | llvm-svn: 171510
* Update the gcc-loops benchmarks results with the new automatic unrolling ↵Nadav Rotem2013-01-041-0/+0
| | | | | | feature. llvm-svn: 171509
* fix a couple of typosEli Bendersky2013-01-041-2/+2
| | | | llvm-svn: 171508
* Remove unused #includeEli Bendersky2013-01-041-1/+0
| | | | llvm-svn: 171507
* PowerPC: Fix eh_frame relocation for PIC Adhemerval Zanella2013-01-045-33/+94
| | | | | | | | | This patch fixes the PPC eh_frame definitions for the personality and frame unwinding for PIC objects. It makes PIC build correctly creates relative relocations in the '.rela.eh_frame' segments and thus avoiding a text relocation that generates a DT_TEXTREL segments in link phase. llvm-svn: 171506
* Add linpack-pc benchNadav Rotem2013-01-042-0/+4
| | | | llvm-svn: 171499
* Add Textmate bundle for Tablegen syntax-highlightingJoel Jones2013-01-043-0/+151
| | | | llvm-svn: 171496
* Change the default number of registers to prevent unrolling on targets that ↵Nadav Rotem2013-01-041-1/+1
| | | | | | dont have this hook. llvm-svn: 171489
* Add a space to the end of the line so we don't get "itsbounds" in output.Eric Christopher2013-01-041-1/+1
| | | | llvm-svn: 171487
* small fixes to enable the reuse of the pass manager across multiple modulesPedro Artigas2013-01-043-2/+4
| | | | llvm-svn: 171475
* Add section information for the DWARF5 split debug proposalEric Christopher2013-01-042-0/+7
| | | | | | string offset section. llvm-svn: 171474
* Make comment a bit more clear.Eric Christopher2013-01-041-1/+2
| | | | llvm-svn: 171473
* Move the loop vectorizer from O2 to O3. It looks like the increase in code ↵Nadav Rotem2013-01-041-1/+1
| | | | | | size actually hurts the performance on many programs. llvm-svn: 171471
* Update the docs about the new unroll features.Nadav Rotem2013-01-041-7/+23
| | | | llvm-svn: 171470
OpenPOWER on IntegriCloud