Commit Graph

38687 Commits

Author SHA1 Message Date
Evan Cheng 0360ecbec1 Use movq to move low half of XMM register and zero-extend the rest.
llvm-svn: 50874
2008-05-08 22:35:02 +00:00
Chris Lattner 954907aa6f conservatively say that volatile stores read memory.
llvm-svn: 50872
2008-05-08 21:58:49 +00:00
Tanya Lattner 93cea9fd18 Revertin 50867 since it was breaking the build.
llvm-svn: 50871
2008-05-08 21:54:20 +00:00
Chris Lattner c2e108430f store can't read from memory.
llvm-svn: 50869
2008-05-08 21:47:43 +00:00
Mikhail Glushenkov e75ac17eaa Add -E and -S options
llvm-svn: 50868
2008-05-08 20:02:36 +00:00
Mikhail Glushenkov d7e151f868 A small refactoring (extract method) + some comment fixes.
llvm-svn: 50867
2008-05-08 20:02:03 +00:00
Chris Lattner d12c519b74 Remove dead return. Thanks to Bill for the review!
llvm-svn: 50863
2008-05-08 18:26:56 +00:00
Gordon Henriksen 829046b0b4 Improve pass documentation and comments.
Patch by Matthijs Kooijman!

llvm-svn: 50861
2008-05-08 17:46:35 +00:00
Chris Lattner 49a594e6ab More than just loads can read from memory: readonly calls like strlen
also need to be checked for memory modifying instructions before we
can sink them.  THis fixes the second half of PR2297.

llvm-svn: 50860
2008-05-08 17:37:37 +00:00
Chris Lattner 4fa09669d8 Make instcombine's DSE respect loads as well as stores. It is not safe to
delete the first store in:

store x -> p
load p
store y -> p

This is for PR2297.

llvm-svn: 50859
2008-05-08 17:20:30 +00:00
Chris Lattner 8462711ce8 add a new Instruction::mayReadFromMemory predicate, make
Instruction::mayWriteToMemory stronger for invokes.

llvm-svn: 50858
2008-05-08 17:16:51 +00:00
Devang Patel 4758caa926 Check linkage.
llvm-svn: 50851
2008-05-08 15:08:39 +00:00
Duncan Sands 9897eee483 Get exception handling working again on 64 bit
Darwin.  This is a hack of course, but it does
at least look at the right thing: gotpcrel means
that this is already an offset, so an explicit
offset is not needed (and wrong).  I think this
is good enough for the moment: Anton is working
on something better.

llvm-svn: 50850
2008-05-08 12:33:11 +00:00
Chris Lattner d93ff087ba new testcase.
llvm-svn: 50841
2008-05-08 04:55:51 +00:00
Chris Lattner f4b42f545b Add support for constant folding the 'offsetof' pattern even if the
base is not zero.  This fixes test/C++Frontend/2008-05-07-CrazyOffsetOf.cpp

llvm-svn: 50840
2008-05-08 04:54:43 +00:00
Evan Cheng 78af38c392 Handle vector move / load which zero the destination register top bits (i.e. movd, movq, movss (addr), movsd (addr)) with X86 specific dag combine.
llvm-svn: 50838
2008-05-08 00:57:18 +00:00
Evan Cheng 0d6311d46c Add nounwind.
llvm-svn: 50837
2008-05-07 22:59:08 +00:00
Anton Korobeynikov fc2edad4ae Turn StripPointerCast() into a method
llvm-svn: 50836
2008-05-07 22:54:15 +00:00
Mikhail Glushenkov 41318a15d0 Use Doxygen-style comments.
llvm-svn: 50833
2008-05-07 21:50:19 +00:00
Ted Kremenek dac0391218 Make the interface of CStrInCStrNoCase be the same as strcasestr.
llvm-svn: 50828
2008-05-07 20:04:18 +00:00
Chris Lattner 621d33bbc0 Add a new LibCallAliasAnalysis pass, which is parameterized
by an instance of LibCallInfo to provide mod/ref info of
standard library functions.  This is powerful enough to
say that 'sqrt' is readonly except that it modifies errno,
or that "printf doesn't store to memory unless the %n
constraint is present" etc.

llvm-svn: 50827
2008-05-07 19:53:05 +00:00
Ted Kremenek 7b66ad294b Fix some serious logical errors in CStrInCStrNoCase pointed out by Bill.
llvm-svn: 50826
2008-05-07 19:22:36 +00:00
Duncan Sands e2b0bf43a7 Output correct exception handling and frame info
on x86-64 linux.  This causes no regressions on
32 bit linux and 32 bit ppc.  More tests pass
on 64 bit ppc with no regressions.  I didn't
turn on eh on 64 bit linux because the intrinsics
needed to compile the eh runtime aren't done
yet.  But if you turn it on and link with the
mainline runtime then eh seems to work fine
on x86-64 linux with this patch.  Thanks to
Dale for testing.  The main point of the patch
is that if you output that some object is
encoded using 4 bytes you had better not output
8 bytes for it: the patch makes everything
consistent.

llvm-svn: 50825
2008-05-07 19:11:09 +00:00
Ted Kremenek 13bbdf2389 Guard for empty strings in CStrInCStrNoCase.
llvm-svn: 50823
2008-05-07 18:49:31 +00:00
Ted Kremenek 3a9fa4e360 Added CStrInCStrNoCase, a portable implementation of strcasestr.
llvm-svn: 50821
2008-05-07 18:35:46 +00:00
Chris Lattner 9a35f1b702 Add a new interface for describing the behavior of library calls. This
Currently is sufficient to describe mod/ref behavior but will hopefully
eventually be extended for other purposes.

This isn't used by anything yet.

llvm-svn: 50820
2008-05-07 18:21:13 +00:00
Nick Lewycky 5fcecbffca Typo.
llvm-svn: 50805
2008-05-07 06:39:04 +00:00
Evan Cheng 7ca4a67ca1 Yet another nasty spiller bug.
%ecx = op
store %cl<kill>, (addr)
(addr) = op %al

It's not safe to unfold the last operand and eliminate store even though %cl is marked kill. It's a sub-register use which means one of its super-register(s) may be used below.

llvm-svn: 50794
2008-05-07 00:49:28 +00:00
Dan Gohman 5a3eecdfd8 Fix a bug in the ComputeMaskedBits logic for multiply.
llvm-svn: 50793
2008-05-07 00:35:55 +00:00
Bill Wendling 13a15700fc Make the use of the "noinline" attribute conditional on using GCC.
llvm-svn: 50789
2008-05-07 00:00:34 +00:00
Owen Anderson 0d84582dc0 Disable loop deletion until the release branch.
llvm-svn: 50787
2008-05-06 23:56:34 +00:00
Bill Wendling 8f3d737dcd Removing.
llvm-svn: 50786
2008-05-06 23:56:22 +00:00
Bill Wendling d054e15fe3 Workaround for a compiler bug (see <rdar://problem/5852746>). Once that bug is
fixed, revert this patch.

llvm-svn: 50782
2008-05-06 23:30:02 +00:00
Steve Naroff 51b2a18084 Update a couple VC++ project files.
llvm-svn: 50780
2008-05-06 23:14:34 +00:00
Anton Korobeynikov f5d2c3b45a Use target triple in tests, not 'realign-stack=0' option. Per request.
llvm-svn: 50778
2008-05-06 23:09:29 +00:00
Anton Korobeynikov 09cfb1cf2d If weak GlobalVariable was bitcast'ed to different type during linking
we will need to strip all casts for intializer lookup.

llvm-svn: 50776
2008-05-06 22:52:54 +00:00
Anton Korobeynikov 82c02b28f3 Make StripPointerCast a common function (should we mak it method of Value instead?)
llvm-svn: 50775
2008-05-06 22:52:30 +00:00
Owen Anderson ec9d8558d5 Testcase for r50770.
llvm-svn: 50771
2008-05-06 21:01:34 +00:00
Owen Anderson 0e1ab4a9be We need to update PHIs containing the exiting block, not the exit block. We really should come up with better names for these.
llvm-svn: 50770
2008-05-06 20:55:16 +00:00
Gordon Henriksen 6ea927b1d7 Improve documentation.
llvm-svn: 50768
2008-05-06 19:17:01 +00:00
Mikhail Glushenkov eeac27e38c Change from llvm::SmallSet<std::string> to llvm::StringMap<char>.
llvm-svn: 50766
2008-05-06 18:18:58 +00:00
Mikhail Glushenkov 5e9d6a3dd8 Add new edge property combinator: weight.
llvm-svn: 50765
2008-05-06 18:18:20 +00:00
Mikhail Glushenkov bfc8954a65 Add a help string for the -c option
llvm-svn: 50764
2008-05-06 18:17:42 +00:00
Mikhail Glushenkov 7e415c4c18 Update documentation to reflect the current state of affairs.
llvm-svn: 50763
2008-05-06 18:17:19 +00:00
Mikhail Glushenkov 0ca372a6be Some cosmetic changes (change some comments, move code around a bit).
llvm-svn: 50762
2008-05-06 18:16:52 +00:00
Mikhail Glushenkov 260d83068b Move test files around a bit - fixes the reported number of test cases.
llvm-svn: 50761
2008-05-06 18:16:20 +00:00
Mikhail Glushenkov de7fad129d Refactoring: split the function CompilationGraph::Build() into two parts.
llvm-svn: 50760
2008-05-06 18:15:35 +00:00
Mikhail Glushenkov a02084cff7 Use edge weights to choose the right linker based on input language names.
llvm-svn: 50759
2008-05-06 18:15:12 +00:00
Mikhail Glushenkov 1b056e9e5a Add weights to graph edges. Choose between edges based on their weight.
llvm-svn: 50757
2008-05-06 18:14:24 +00:00
Mikhail Glushenkov 3a2f5c423e Remove the UnpackValues() function.
llvm-svn: 50756
2008-05-06 18:13:45 +00:00
Mikhail Glushenkov 7f6ed20009 Add a --linker command-line option, make all tests pass.
llvm-svn: 50755
2008-05-06 18:13:00 +00:00
Mikhail Glushenkov 20c18c344b Naming fix: LLVMCCConfigurationEmitter -> LLVMCConfigurationEmitter.
llvm-svn: 50754
2008-05-06 18:12:03 +00:00
Mikhail Glushenkov 7f417b08cf Add two (currently failing) tests.
llvm-svn: 50752
2008-05-06 18:11:21 +00:00
Mikhail Glushenkov fc905c64ab Add -x option (like in gcc).
llvm-svn: 50750
2008-05-06 18:10:53 +00:00
Mikhail Glushenkov baacf0d692 Take object file as input and handle files with the same name correctly.
llvm-svn: 50749
2008-05-06 18:10:20 +00:00
Mikhail Glushenkov 1002d5f33f Rename LLVMCCConfigurationEmitter to LLVMCConfigurationEmitter
llvm-svn: 50748
2008-05-06 18:09:29 +00:00
Mikhail Glushenkov d4918dd32c Add output redirection, rename namespace llvmcc to namespace llvmc.
llvm-svn: 50746
2008-05-06 18:08:59 +00:00
Mikhail Glushenkov 2eb0268fab Make AutoGenerated.inc depend also on Tools.td and Common.td
llvm-svn: 50745
2008-05-06 18:08:12 +00:00
Mikhail Glushenkov 73d866efda Utilize topological sort in CompilationGraph::Build().
This makes more interesting graph topologies possible. Currently all tests pass,
but more testing is needed.

llvm-svn: 50744
2008-05-06 18:07:48 +00:00
Mikhail Glushenkov 7701512231 Add TopologicalSort method to CompilationGraph.
llvm-svn: 50743
2008-05-06 18:07:14 +00:00
Mikhail Glushenkov af932f0d96 Do not require positional arguments when we're only printing out the graph.
llvm-svn: 50742
2008-05-06 17:44:16 +00:00
Mikhail Glushenkov 0620d0ca47 Make ChooseEdge more generic and use it to choose between different toolchains.
llvm-svn: 50741
2008-05-06 17:28:03 +00:00
Mikhail Glushenkov 891c14d1f1 Remove unnecessary argument from PassThroughGraph
llvm-svn: 50740
2008-05-06 17:27:37 +00:00
Mikhail Glushenkov 7ed45e2261 Small output formatting fix.
llvm-svn: 50739
2008-05-06 17:27:15 +00:00
Mikhail Glushenkov 2709e1a2c9 Add inward edge counters to Nodes; Associate JoinLists with JoinTools.
llvm-svn: 50738
2008-05-06 17:26:53 +00:00
Mikhail Glushenkov ee81aa3812 Enhancements for --view-graph
llvm-svn: 50737
2008-05-06 17:26:14 +00:00
Mikhail Glushenkov be23113e93 Split the Build function into two parts.
llvm-svn: 50736
2008-05-06 17:25:51 +00:00
Mikhail Glushenkov af15882a5a Make llvmc return 1 when the compilation fails.
llvm-svn: 50735
2008-05-06 17:25:23 +00:00
Mikhail Glushenkov 07597594b2 First small tests for llvmc2.
llvm-svn: 50734
2008-05-06 17:24:54 +00:00
Mikhail Glushenkov baa0b592d0 Return const char* instead of std::string in Tool classes
llvm-svn: 50733
2008-05-06 17:24:26 +00:00
Mikhail Glushenkov 6ec1761ef6 Add an ability to choose between different edges based on edge properties.
llvm-svn: 50732
2008-05-06 17:23:50 +00:00
Mikhail Glushenkov 1c41c6d734 Refactoring: extract method.
llvm-svn: 50731
2008-05-06 17:23:14 +00:00
Mikhail Glushenkov 59eb254092 Add new edge properties: parameter_equals, element_in_list, and.
llvm-svn: 50730
2008-05-06 17:22:47 +00:00
Mikhail Glushenkov 681df41f2c Implemented switch_on edge property.
llvm-svn: 50729
2008-05-06 17:22:03 +00:00
Mikhail Glushenkov 39a9335241 Cosmetic change: if( -> if (
llvm-svn: 50728
2008-05-06 16:37:33 +00:00
Mikhail Glushenkov abd7cc7238 Remove ExampleWithOpt.td: this file was merged with Example.td.
llvm-svn: 50727
2008-05-06 16:37:12 +00:00
Mikhail Glushenkov 251280ce0b More work on edge properties. Use Edge classes instead of strings in CompilationGraph.
llvm-svn: 50726
2008-05-06 16:36:50 +00:00
Mikhail Glushenkov 459df48de7 Ongoing work: add an edge typechecker, rudimentary support for edge properties.
llvm-svn: 50725
2008-05-06 16:36:06 +00:00
Mikhail Glushenkov adcb08d1b3 Convert internal representation to use DAG. This gives us more flexibility and enables future improvements.
llvm-svn: 50724
2008-05-06 16:35:25 +00:00
Mikhail Glushenkov 8190616359 Small const-correctness fix
llvm-svn: 50723
2008-05-06 16:34:39 +00:00
Mikhail Glushenkov a8276c5323 Code reorg
llvm-svn: 50722
2008-05-06 16:34:12 +00:00
Duncan Sands bceec3a9ef Testcase for PR2292.
llvm-svn: 50718
2008-05-06 14:56:40 +00:00
Bill Wendling 557ecd8670 Remove tar ball from installed directory.
llvm-svn: 50717
2008-05-06 08:33:07 +00:00
Evan Cheng ef3faa1b1c Fix PR2287. Darwin passes mmx values in register in 64-mode, not Linux.
llvm-svn: 50716
2008-05-06 07:23:50 +00:00
Devang Patel 7ffc3c9a95 Fix typo.
llvm-svn: 50713
2008-05-06 05:40:11 +00:00
Nick Lewycky f0bdd22ffd Fix typo and indentation.
llvm-svn: 50706
2008-05-06 04:03:18 +00:00
Nick Lewycky 25f08069ae Fix renamePathOnDisk on Win32, patch from David Leon. This fixes problems with
llvm-ar being unable to rename files.

llvm-svn: 50702
2008-05-06 03:42:21 +00:00
Chris Lattner de68fabb35 fix typo Duncan noticed
llvm-svn: 50699
2008-05-06 02:31:18 +00:00
Chris Lattner 888594bdf4 Match things like 'armv5tejl-unknown-linux-gnu' for PR2290
llvm-svn: 50698
2008-05-06 02:29:28 +00:00
Dan Gohman 6a2da37c0e Make several variable declarations static.
llvm-svn: 50696
2008-05-06 01:53:16 +00:00
Dan Gohman a8b7e78f54 Remove uses of llvm/System/IncludeFile.h that are no longer needed.
llvm-svn: 50695
2008-05-06 01:32:53 +00:00
Dan Gohman 38dc08f36f Instead of enumerating each opcode that isn't handled that
ComputeMaskedBits handles, just use a 'default:'. This avoids
TargetLowering's list getting out of date with SelectionDAG's.

llvm-svn: 50693
2008-05-06 00:53:29 +00:00
Dan Gohman cf0e3acf16 Correct the value of LowBits in srem and urem handling in
ComputeMaskedBits.

llvm-svn: 50692
2008-05-06 00:51:48 +00:00
Dan Gohman 72a0bc148c Fix a broken doxygen comment, and reword it for clarity.
llvm-svn: 50687
2008-05-06 00:20:10 +00:00
Owen Anderson 7db342b0a8 Enable dead loop elimination.
llvm-svn: 50682
2008-05-05 23:38:07 +00:00
Chris Lattner 6e2bf7c67e add a micro optzn.
llvm-svn: 50681
2008-05-05 23:19:45 +00:00
Mon P Wang 310a38d51e Improved generated code for atomic operators
llvm-svn: 50677
2008-05-05 22:56:23 +00:00
Evan Cheng dbfcce37fe Code clean up. No functionality change.
llvm-svn: 50675
2008-05-05 22:12:23 +00:00
Bill Wendling 4ead264c08 Fix: Some classes were derived from a class in an anonymous namespace, but they
themselves weren't in the anonymous namespace.

llvm-svn: 50673
2008-05-05 21:37:59 +00:00
Bill Wendling 31ce28c561 Using "unsigned" was masking the "size_t" version of this method.
llvm-svn: 50668
2008-05-05 20:51:58 +00:00
Chris Lattner 8ed8e3d0e6 Fix a crash when threading a block that includes a MRV call result.
DemoteRegToStack doesn't work with MRVs yet, because it relies on the
ability to load/store things.

This fixes PR2285.

llvm-svn: 50667
2008-05-05 20:21:22 +00:00
Devang Patel 698de320d8 Remove unused function.
llvm-svn: 50664
2008-05-05 19:44:16 +00:00
Mon P Wang 3e58393c3d Added addition atomic instrinsics and, or, xor, min, and max.
llvm-svn: 50663
2008-05-05 19:05:59 +00:00
Dan Gohman b42c28c3dc Fix IsLinux being uninitialized on non-Linux targets.
llvm-svn: 50660
2008-05-05 18:43:07 +00:00
Evan Cheng 86cb31862f Fix more -Wshorten-64-to-32 warnings.
llvm-svn: 50659
2008-05-05 18:30:58 +00:00
Chris Lattner 9c0c60d080 no need for eh info
llvm-svn: 50658
2008-05-05 18:24:33 +00:00
Evan Cheng b8c818026c Fix 80 column violations.
llvm-svn: 50655
2008-05-05 17:41:03 +00:00
Anton Korobeynikov 4b0386ce62 Fix 80col violation
llvm-svn: 50654
2008-05-05 17:08:59 +00:00
Dan Gohman e3a63ba3cd Fix a bug in the ELF writer that caused it to produce malformed
ELF headers. The ELF writer still isn't generally usable though.

llvm-svn: 50652
2008-05-05 16:48:32 +00:00
Dan Gohman 6fd71c6512 Use a dedicated IsLinux flag instead of an ELFLinux TargetType.
llvm-svn: 50649
2008-05-05 16:11:31 +00:00
Dan Gohman bcde172222 Add AsmPrinter support for emitting a directive to declare that
the code being generated does not require an executable stack.

Also, add target-specific code to make use of this on Linux
on x86. 

llvm-svn: 50634
2008-05-05 00:28:39 +00:00
Anton Korobeynikov 9205c8562c Add General Dynamic TLS model for X86-64. Some parts looks really ugly (look for tlsaddr pattern),
but should work. Work is in progress, more models will follow

llvm-svn: 50630
2008-05-04 21:36:32 +00:00
Owen Anderson 9d990dd218 Fix PR1098 by correcting the postdominators analysis.
Patch by Florian Brandner.

llvm-svn: 50628
2008-05-04 21:07:35 +00:00
Chris Lattner 304f209a07 remove obsolete method.
llvm-svn: 50622
2008-05-04 18:14:55 +00:00
Chris Lattner c17c8f3ec4 regenerate
llvm-svn: 50621
2008-05-04 17:18:47 +00:00
Gordon Henriksen a735a9c481 Use (void) instead of () in C code.
llvm-svn: 50620
2008-05-04 12:55:34 +00:00
Evan Cheng d9481366e3 Select vector shift with non-immediate i32 shift amount operand by first moving the operand into the right register.
llvm-svn: 50619
2008-05-04 09:15:50 +00:00
Torok Edwin 2d7a4d70c3 processStore may delete the instruction, avoid
using dyn_cast<> on already freed memory.

llvm-svn: 50618
2008-05-04 08:51:25 +00:00
Anton Korobeynikov 60d2d99b11 Remove entries from here also
llvm-svn: 50616
2008-05-04 06:23:44 +00:00
Anton Korobeynikov 625f4fee4d Drop llvmc also, it will be replaced by shiny new llvmc2
llvm-svn: 50615
2008-05-04 06:19:55 +00:00
Anton Korobeynikov a41f7f8985 Drop llvm2cpp, it's now a llc target
llvm-svn: 50614
2008-05-04 06:16:50 +00:00
Torok Edwin 2a45575c71 Implement destructor for PostDominatorTree to eliminate a memory leak.
llvm-svn: 50607
2008-05-03 20:25:26 +00:00
Devang Patel fa0e3c4a92 Handle multiple return values.
llvm-svn: 50604
2008-05-03 01:12:15 +00:00
Ted Kremenek 9f620f7d92 Implement operator-> for ImmutableMap iterators.
llvm-svn: 50603
2008-05-03 01:05:46 +00:00
Evan Cheng cdf22f2953 Add separate intrinsics for MMX / SSE shifts with i32 integer operands. This allow us to simplify the horribly complicated matching code.
llvm-svn: 50601
2008-05-03 00:52:09 +00:00
Devang Patel a1ec89fbf1 Do not sink getresult.
llvm-svn: 50600
2008-05-03 00:36:30 +00:00
Devang Patel ab8cacee2d Add assert.
llvm-svn: 50596
2008-05-02 22:13:33 +00:00
Chris Lattner 6238dada27 verify builtin optimization works like gcc.
llvm-svn: 50594
2008-05-02 22:07:34 +00:00
Chris Lattner e3b320bd4b move libcalls to the same place llvm-gcc has it.
llvm-svn: 50593
2008-05-02 22:05:06 +00:00
Dan Gohman 1962c2be6a Fix a mistake in the computation of leading zeros for udiv.
llvm-svn: 50591
2008-05-02 21:30:02 +00:00
Evan Cheng 82b9e96274 Suppress -Wshorten-64-to-32 warnings for 64-bit hosts.
llvm-svn: 50590
2008-05-02 21:15:08 +00:00
Chris Lattner 5f0563ceb6 strength reduce exp2 into ldexp, rdar://5852514
llvm-svn: 50586
2008-05-02 18:43:35 +00:00
Chris Lattner a700b2bd0f add a FIXME so we remember to eventually remove this code.
llvm-svn: 50582
2008-05-02 17:18:31 +00:00
Evan Cheng fa8f9f937a Undo r50574. We are already ensuring the folded load address is 16-byte aligned.
llvm-svn: 50578
2008-05-02 17:01:01 +00:00
Chris Lattner 34931afff7 specify an arch for non-x86 hosts.
llvm-svn: 50576
2008-05-02 15:11:58 +00:00
Evan Cheng 4f9cd9181e 80 column violation.
llvm-svn: 50575
2008-05-02 07:53:32 +00:00
Evan Cheng 50f82f2c8e Not safe folding a load + FsXORPSrr into FsXORPSrm. It's loading a FR64 value but the load folding variant expects a 16-byte aligned address.
llvm-svn: 50574
2008-05-02 07:50:58 +00:00
Bill Wendling 86ceb0db9c Porting r50563 from Tak to mainline.
llvm-svn: 50564
2008-05-02 00:43:20 +00:00
Dan Gohman 2f83b47863 Fix a typo in a comment.
llvm-svn: 50562
2008-05-02 00:05:03 +00:00
Dan Gohman ea6357828b Use push_back(...) instead of resize(1, ...), per review feedback.
llvm-svn: 50561
2008-05-02 00:03:54 +00:00
Dan Gohman 2cdcf2bd5f Update old-style syntax in some "not grep" tests.
llvm-svn: 50560
2008-05-01 23:50:07 +00:00
Dan Gohman 752ce50b2d Fix uninitialized uses of the FPC variable.
llvm-svn: 50558
2008-05-01 23:40:44 +00:00
Dale Johannesen 6e91480c7c New test for bug fixed in 50545.
llvm-svn: 50548
2008-05-01 22:50:14 +00:00
Dale Johannesen 78ffe6e939 Don't try to create PHIs of struct types. Fallout
from x86-64 calling convention work.

llvm-svn: 50545
2008-05-01 22:27:44 +00:00
Dan Gohman 4be6ae4e6c Fix an overaggressive SimplifyDemandedBits optimization on urem. This
fixes the 254.gap regression on x86 and the 403.gcc regression on x86-64.

llvm-svn: 50537
2008-05-01 19:13:24 +00:00
Bill Wendling fb4191cc04 Adding testcase.
llvm-svn: 50536
2008-05-01 18:41:09 +00:00
Ted Kremenek 234dc7ac39 Initialize a local variable.
llvm-svn: 50527
2008-05-01 17:08:00 +00:00
Chris Lattner d4b2a67cf3 don't randomly miscompile seto/setuo just because we are in
ffastmath mode.  This fixes rdar://5902801, a miscompilation
of gcc.dg/builtins-8.c.

Bill, please pull this into Tak.

llvm-svn: 50523
2008-05-01 07:26:11 +00:00
Chris Lattner bb41aab426 1) add '-debug' output
2) Return NULL instead of false in several places for tidiness.
3) fix a bug optimizing  sprintf(p, "%c", x)

llvm-svn: 50521
2008-05-01 06:39:12 +00:00
Chris Lattner b9b5d6ddaa Delete the IPO simplify-libcalls and completely reimplement it as
a FunctionPass.  This makes it simpler, fixes dozens of bugs, adds
a couple of minor features, and shrinks is considerably: from
2214 to 1437 lines.

llvm-svn: 50520
2008-05-01 06:25:24 +00:00