Commit Graph

26125 Commits

Author SHA1 Message Date
Chris Lattner 63268f0672 Add code to resize the CSEMap hash table. This doesn't speedup codegen of
kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :)

llvm-svn: 29675
2006-08-14 22:19:25 +00:00
Chris Lattner fdb296850c avoid a warning
llvm-svn: 29674
2006-08-14 21:47:50 +00:00
Chris Lattner 6441cf93c9 Handle single-entry PHI nodes correctly. This fixes PR877 and
Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll

llvm-svn: 29673
2006-08-14 21:38:05 +00:00
Chris Lattner c5bbda70e3 new testcase from PR877
llvm-svn: 29672
2006-08-14 21:37:32 +00:00
Chris Lattner c7443af7d3 Fix more validation issues
llvm-svn: 29671
2006-08-14 20:51:35 +00:00
Chris Lattner 5b560d98da Update the example to work with llvm-gcc4. Fix validation errors.
llvm-svn: 29670
2006-08-14 20:45:25 +00:00
Chris Lattner 8e37283d8b Add the actual constant to the hash for ConstantPool nodes. Thanks to
Rafael Espindola for pointing this out.

llvm-svn: 29669
2006-08-14 20:12:44 +00:00
Chris Lattner a496ec35ed typo
llvm-svn: 29668
2006-08-14 20:07:50 +00:00
Reid Spencer 8627ee227c Fix a typo.
llvm-svn: 29667
2006-08-14 19:51:02 +00:00
Reid Spencer 105780fb7d Fix several grammaros and a few HTML usage items.
llvm-svn: 29665
2006-08-14 19:19:55 +00:00
Rafael Espindola 157971b04a select code like
ldr rx, [ry, #offset]

llvm-svn: 29664
2006-08-14 19:01:24 +00:00
Reid Spencer 235c1555c3 Make all tools that use llvmdo have a -topdir option that allows the top
source dir for LLVM to be specified explicitly. This removes the dependency
on the llvm-config script. If the option is not given, then the scripts use
llvm-config which should be both built and in the PATH. This arrangement
provides a useful default for most developers but also allows the nightly
tester to execute countloc.sh before llvm-config is built and without
altering the PATH.

llvm-svn: 29663
2006-08-14 18:49:05 +00:00
Devang Patel cee1799a33 Use < and >
llvm-svn: 29662
2006-08-14 18:49:03 +00:00
Devang Patel c3b31161e7 Fix verification failures.
llvm-svn: 29661
2006-08-14 18:39:35 +00:00
Devang Patel b1ebbee8b8 Add lto doc link.
llvm-svn: 29660
2006-08-14 18:21:53 +00:00
Devang Patel b15c007812 Add lto doc.
llvm-svn: 29659
2006-08-14 18:03:40 +00:00
Patrick Jenkins d531b509cc Added some comments to clarify code around sub TestDirectory
llvm-svn: 29658
2006-08-14 16:07:14 +00:00
Reid Spencer 6d389e12fd Add llvm2cpp.
llvm-svn: 29656
2006-08-13 19:04:57 +00:00
Reid Spencer f82ce13179 1. fix bug by ensuring we start at the llvm source root.
2. make use of the -code-only option on llvmdo
3. Add some debug print statements to find #1

llvm-svn: 29655
2006-08-13 19:03:06 +00:00
Reid Spencer 0cb9ded022 Count the documentation. Otherwise we take a 30,000 hit in the LOC on the
nightly test graph. And, documentation is important.

llvm-svn: 29654
2006-08-13 18:59:40 +00:00
Reid Spencer 4e6115ea3a Use the new -code-only option to llvmdo so that we only count things that
are considered to be code. This will give a drop in the LOC count on the
nightly testers, but it is more accurate than previous estimates.

llvm-svn: 29653
2006-08-13 18:29:21 +00:00
Reid Spencer 1be8d4c3c3 Add a -code-only option which restricts llvmdo to visiting just those
files that are considered to be code. Documentation is excluded.

llvm-svn: 29652
2006-08-13 18:28:27 +00:00
Reid Spencer 558269c8d6 Changes for LLVM coding standard compliance:
1. Remove tabs
  2. Wrap to 80 columns
  3. Put spaces between "if" or "elsif" and expression
  4. Put { on same line as if statement.
  5. Make indentation be 2 spaces.
Functionality change:
  Run utils/countloc.sh after the build is done. This is necessary because
  that script now uses llvm-config to find the top src directory.

llvm-svn: 29651
2006-08-13 09:53:02 +00:00
Nate Begeman 984c1a4a8f Emit .set directives for jump table entries when possible, which reduces
the number of relocations in object files, shrinkifying them.

llvm-svn: 29650
2006-08-12 21:29:52 +00:00
Chris Lattner 095e4ad2ea Fix a bug in a recent refactoring that broke a bunch of stuff.
llvm-svn: 29649
2006-08-12 07:20:05 +00:00
Chris Lattner 167ea3eb5f Fix an obvious bug, noticed by inspection. No current targets trigger this.
llvm-svn: 29648
2006-08-12 05:41:39 +00:00
Chris Lattner f18b396cc2 Don't attempt to split subloops out of a loop with a huge number of backedges.
Not only will this take huge amounts of compile time, the resultant loop nests
won't be useful for optimization.  This reduces loopsimplify time on
Transforms/LoopSimplify/2006-08-11-LoopSimplifyLongTime.ll from ~32s to ~0.4s
with a debug build of llvm on a 2.7Ghz G5.

llvm-svn: 29647
2006-08-12 05:25:00 +00:00
Chris Lattner 54faca1d70 New testcase, this used to take hours to loopsimplify.
llvm-svn: 29646
2006-08-12 05:23:27 +00:00
Chris Lattner 859a138dc4 Make Loop::getExitBlocks significantly faster for large loops. Instead of
pounding on Loop::contains (which is O(n) in the size of the loop), use a
sorted vector, which is O(log(N)) for each query.  This speeds up Duraid's
horrible testcase from ~72s to ~31s in a debug build.

llvm-svn: 29645
2006-08-12 05:02:03 +00:00
Chris Lattner 85d9944f9a Reimplement the loopsimplify code which deletes edges from unreachable
blocks that target loop blocks.

Before, the code was run once per loop, and depended on the number of
predecessors each block in the loop had.  Unfortunately, scanning preds can
be really slow when huge numbers of phis exist or when phis with huge numbers
of inputs exist.

Now, the code is run once per function and scans successors instead of preds,
which is far faster.  In addition, the new code is simpler and is goto free,
woo.

This change speeds up a nasty testcase Duraid provided me from taking hours to
taking ~72s with a debug build.  The functionality this implements is already
tested in the testsuite as Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll.

llvm-svn: 29644
2006-08-12 04:51:20 +00:00
Chris Lattner 9fd1027b4c Track # nodes in a CSEMap.
llvm-svn: 29643
2006-08-12 01:07:51 +00:00
Chris Lattner 0a60294fa0 Switch to using SuperFastHash instead of adding all elements together. This
doesn't significantly improve performance but it helps a small amount.

llvm-svn: 29642
2006-08-12 01:07:10 +00:00
Reid Spencer 52aeae0666 Lexer.cpp is a generated file both in lib/AsmParser and projects/Stacker
so we remove it from being counted.

llvm-svn: 29641
2006-08-11 23:58:58 +00:00
Chris Lattner 04aa034f38 Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5%
speedup in isel time.

llvm-svn: 29640
2006-08-11 23:55:53 +00:00
Chris Lattner 5425637481 remove IncludeFile turds in MathExtras.h, which bloats every .o file that
#includes it.

llvm-svn: 29639
2006-08-11 23:52:54 +00:00
Reid Spencer 854b5c7c40 Weed out some cruft and add in some missing extensions.
llvm-svn: 29638
2006-08-11 23:51:05 +00:00
Reid Spencer 8ca43d72aa Weed out cruft that should not be counted and add in extensions we
previously missed.

llvm-svn: 29637
2006-08-11 23:50:27 +00:00
Chris Lattner ab786e77c6 move code out of line so that GCC doesn't inline it at -O3
llvm-svn: 29636
2006-08-11 23:40:23 +00:00
Patrick Jenkins 04ed1426f6 Added information for the new nightly tester.
llvm-svn: 29635
2006-08-11 23:27:02 +00:00
Chris Lattner 19172c90f1 Split SmallVector into SmallVector and SmallVectorImpl, which allows us to
eliminate code duplication due to the 'N' parameter.

llvm-svn: 29634
2006-08-11 23:19:51 +00:00
Patrick Jenkins e97e60734a Added two flags (-submit-server and -submit-script) which allow the user to specify where the test results are submitted too. If these are not specified they default to the LLVM.org server.
llvm-svn: 29633
2006-08-11 23:02:09 +00:00
Reid Spencer db3752ab6b Make this script not care where it is run from by getting the llvm src
root from the llvm-config script.

llvm-svn: 29632
2006-08-11 21:55:31 +00:00
Chris Lattner 0c2e5412bb Remove 8 more std::map's.
llvm-svn: 29631
2006-08-11 21:55:30 +00:00
Reid Spencer 719c383594 Make llvmdo and llvmgrep invulnerable to where they are run from by getting
the llvm source root from the llvm-config command. The dependency now is
that the correct llvm-config command is in the path. For most developers
this is the case.

llvm-svn: 29630
2006-08-11 21:53:27 +00:00
Reid Spencer 47fcb4779d Don't print double newline for --src-root and --obj-root as it tends to
confuse shells that might use this output.

llvm-svn: 29629
2006-08-11 21:50:24 +00:00
Chris Lattner 797ee571ae remove old piece of the V9 backend.
llvm-svn: 29628
2006-08-11 21:11:35 +00:00
Chris Lattner 20b461a97f eliminate extraneous blank line
llvm-svn: 29627
2006-08-11 21:08:16 +00:00
Chris Lattner 3f16b201e2 Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants,
RegNodes, and ValueNodes maps into the CSEMap.

llvm-svn: 29626
2006-08-11 21:01:22 +00:00
Chris Lattner 2006a2ebab Start moving leaf nodes over to the CSEMap.
llvm-svn: 29625
2006-08-11 21:00:46 +00:00
Reid Spencer 1f0b9a1158 Clean up the HTML output. Add a -filedetails option to report the number of
lines contributed by each user to each file.

llvm-svn: 29624
2006-08-11 20:44:17 +00:00