You have to use a wp_update_post
function and update the required fields based on available fields in WP_Post
class.
add_action( 'save_post', 'wpse75679_save_post' );
function wpse75679_save_post( $post_id )
{
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
// verify post is not a revision
if ( ! wp_is_post_revision( $post_id ) ) {
// unhook this function to prevent infinite loop
remove_action( 'save_post', 'wpse75679_save_post' );
// update the post slug and title
wp_update_post( array(
'ID' => $post_id,
'post_title' => 'new-title'
'post_name' => 'new-slug'
));
// re-hook this function
add_action( 'save_post', 'wpse75679_save_post' );
}